Java 杂谈

Java异常体系

2019-02-25  本文已影响2人  无敌锤子棒棒鸡

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.异常对象实例需要保存栈快照等信息,开销大
上一篇 下一篇

猜你喜欢

热点阅读