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.异常对象实例需要保存栈快照等信息,开销大
网友评论