Throwable
/ \
Error Exception
Error:错误,一般室友虚拟机生成并脱出的,不需要程序员控制,程序员不关注。
Exception:异常
1、检查时异常|编译时异常:编译期间遇到异常,如果不处理,程序无法进行
2、运行时异常,运行期间异常,通过增强程序健壮性的代码就可以解决,可以用if
常见的运行时异常:
1、空指针异常:NullPointerException
2、数组索引越界:ArrayIndexOutOfBandsException
3、类型转换异常:ClassLastException
4、数字异常:ArithmeticException
5、格式化异常:NumberFormatException
异常处理方案:
1、抛出异常 throws类型
2、异常捕获 try...catch
try{
有可能出现异常的代码
}catch(异常类型 e){
遇到异常后执行的代码;
}catch(另异常类型 e){
遇到异常后执行的代码;
}catch(exception e){
//接盘侠 } finally{
}//无论try中是否遇到异常,都会执行finally中代码
注意:
1、无论时编译时异常还是运行时,异常都可以通2中解决方案处理,但是编译时异常处理只能通过这2中解决方案处理;
2、而运行异常可以通过2中解决方案处理,也可以通过增强程序健壮性,if
3、一个try后面可以接1-n个catch;
4、如果try中的代码一旦遇到异常try中后面的代码不会执行,会直接判断catch,多个catch之间从上到下判断,如果找到对应的catch,执行{ }中的代码
5、如果存在多个catch,大类型捕获放下面
6、一般在finally中会定义资源关闭
自定义异常:
自定义的异常,类型为编译时异常需要直接或者间接的继承自Exception
自定义的异常,类型为运行时异常需要直接或间接的继承自RuntimeException
throw制造异常+