2021-05-15 《Java 核心技术36讲》学习记录二

简述

此文是对 第2讲 | Exception和Error有什么区别? 的学习

一些知识点/笔记点:

  • Exception 和 Error 都是继承了 Throwable 类
  • Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
  • Error 是指在正常情况下,不大可能出现的情况;
  • Exception 又分为可检查(checked)异常和不检查(unchecked)异常
  • 可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分
  • 不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类
  • 经典题目: NoClassDefFoundError 和 ClassNotFoundException 有什么区别?
  • 异常处理的两个基本原则:
    1.尽量不要捕获类似 Exception 这样的通用异常,而是应该捕获特定异常
    2.不要生吞(swallow)异常
  • 实际使用中不要使用e.printStackTrace();最好使用产品日志,详细地输出到日志系统里
  • Throw early, catch late 原则。
  • 根据需要自定义异常
  • Java 的异常处理机制存在的问题:
    1.try-catch 代码段会产生额外的性能开销
    2.Java 每实例化一个 Exception,会有快照,相对比较重的消耗
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容