异常体系结构
异常分为Error和Exception。Error通常是灾难性错误,一般发生时,JVM选择终止程序执行;Exception通常可在程序中进行处理,尽量避免
Exception分支中有一个重要子类RuntimeException,运行时异常
ArrayIndexOutOfBoundsException:数组下标越界NullPointerException:空指针异常ArithmeticException:算术异常MissingResourceException:丢失资源ClassNotFoundException:找不到类
异常处理机制
处理异常的关键字
try:监控区域,可能会出现异常的程序代码,放在其中catch:捕获异常,若捕获,则执行catch块的内容finally:无论是否捕获到异常,都会执行。例如IO时出现异常,最后需要在finally块中关闭流

TODO
throw:方法中主动抛出异常throws:方法中处理不了该异常,抛出,到上级处理?
public void test(int a, int b) throws ArithmeticException{
if(b == 0){
throw new ArithmeticException();
}
}
自定义异常
使用Java内置的异常类可以描述大部分异常情况。此外用户可以自定义异常,只需继承Exception类
- 创建自定义异常类
- 在方法中通过
throw抛出异常对象 - 如果在当前抛出异常的方法中处理异常,可以使用
try-catch语句捕获并处理;否则在方法声明处通过throws抛出给方法调用者的异常 - 在出现异常方法的调用者中捕获并处理异常


















