欢迎和我一起学习Java,加油!!
前言
异常体系 :
程序生病了,无法正常执行完毕
一、基本概念及分类
Throwable
/ \
Error Exception
Error : 不由程序猿控制,一般为虚拟机生成并脱出
Exception :
RuntimeException 运行时异常,可以通过简单的if判断解决-> 增强程序健壮性,可以通过异常处理方案解决
发生在程序运行期间,如果不处理异常,程序结果无法继续向下执行
CheckedException 检查时异常|编译时异常,只能通过异常处理方案解决
发生在程序编译期间,如果不处理,程序根本无法运行
二、常见的运行时异常
1.空指针异常 java.lang.NullPointerException
2.数组索引越界异常 java.lang.ArrayIndexOutOfBoundsException
3.类型转换异常 java.lang.ClassCastException
4.数学异常 java.lang.ArithmeticException
5.数组长度负数异常 java.lang.NegativeArraySizeException
6.数字转换异常 java.lang.NumberFormatException
三、异常处理方案
1.抛出异常 throws
异常抛出到上一层,由调用者处理
2.异常捕获
try{
有可能出现异常的代码段;
}catch(异常类型 e){
如果出现这种类型的异常 ,执行的代码段
}catch(异常类型 e){
如果出现这种类型的异常 ,执行的代码段
}... catch (Exception e){
e.printStackTrace();
}finally{
无论是否出现异常,都会执行finally中的代码
}
try中的代码如果么有遇到异常,try中代码执行完毕,trycatch结束
try中代码一旦遇到异常,下面不执行,直接从上到下开始判断满足哪一个catch捕获的类型,执行对应的catch,如果都不满足,异常就没有被处理,程序无法向下执行
如果 存在多个catch,小范围类型写在上面,大范围类型写在下面
try后可以跟随1~多个catch
finally可以跟随需求添加,一般定义为资源关闭等代码
总结
异常将会在以后的编码及项目中经常使用,是个重点。