Java常用类库(异常)

异常处理机制主要回答了,what,where,why三个问题

什么被抛出,在哪抛出,为什么抛出

Error和Exception的区别

Java常用类库(异常)

Error:程序无法处理的系统错误,编译器不做检查

Java常用类库(异常)

Exception:程序可以处理的异常,捕获后可能恢复

RuntimeException:不可预知的,程序应当避免,如数组越界

Java常用类库(异常)

非RuntimeException:可预知的,从编译器校验的异常,如读取的文件不存在

Java常用类库(异常)

Java异常的处理原则

具体明确:抛出的异常应能通过异常类名和message准确说明异常的类型和产生异常的原因;

提早抛出:应尽可能早的发现并抛出异常,便于精确定位问题;

延迟捕获:异常的捕获和处理应尽可能延迟,让掌握更多信息的作用域来处理异常

Java常用类库(异常)

将异常都转换为AppRunTimeException,再交给前端处理,这样返回给用户的信息更加明确。

 

Java常用类库(异常)Java常用类库(异常)

try-catch  比 if else判断更耗时

try-catch块影响JVM的优化

异常对象实例需要保存栈快照等信息,开销较大