Java异常体系

Error和Exception的区别

Error -- 程序无法处理的系统错误,编译器不做检查
Exception -- 程序可以处理的异常,捕捉后能恢复

RuntimeException和非RuntimeException

RuntimeException -- 如何空指针异常等,是不可预知的,应该在程序中避免
非RuntimeException -- 可预知的,编译器校验的异常,如IOException

常用异常类

Runtime
NullPointerException -- 空指针异常
ClassCastException -- 类型强制转换错误
IllegalArgumentException -- 传递非法参数异常
IndexOutOfBoundsException -- 下标越界异常
NumberFormatException -- 数字格式异常
非Runtime
ClassNotFoundException -- 找不到指定class的异常
IOException -- IO操作异常
Error
NoClassDefFoundError -- 找不到class定义的异常
StackOverflowError -- 爆栈
OOM -- 爆堆

Java异常处理消耗性能的地方:

1.try-catch 影响 JVM 的优化
2.异常对象实例需要保存栈快照等信息,开销大
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容