初见JAVA-异常机制-初级进化10
什么是异常
运行中出现了一些状况,影响正常的程序运行,超类为Throwable
分类
检查性异常:用户错误或问题导致的,无法预见的,编译时不能被简单忽略
运行性异常:可能被程序员避免的,可以在编译时被忽略
错误:不是异常,脱离程序员控制,栈溢出等
error
jvm盛昌抛出,大多数错误与代码编写着所执行的操作无关
outOfMemoryError NoClassDefFoundError
Exception
重要分支:RuntimeException
ArrayIndexOutOfBoundsException
NullPointerException
ArithmeticException
MissingResourceException
ClassNotFoundException
可以 选择不处理,一般由程序逻辑错误引起
区别:
error通常是灾难致命错误,出现时会终止线程,
exception可以被程序处理
异常怎么处理
抛出异常try catch
捕获异常 throw/throws
自定义异常
继承exception类
经验总结
- 处理运行时异常时,采用逻辑区合理规避同时辅助try catch处理
- 对多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对不确定的代码,可以加上try catch规避潜在异常
- 尽量去处理异常,不用简单调用去打印输出
- 具体如何处理,要根据不同业务需求和异常类型去决定
- 尽量添加finally语句去释放占用的资源