1.
异常throwable
主要包括Error系统异常例如虚拟机错误.
Exception运行异常,
编码异常操作异常.
Exception异常
1).非检查异常例如空指针异常,类型转换异常,数组越界异常,算数异常.
2).检查异常包括连接异常,文件不存在异常等
2.写异常需要注意的问题
catch异常顺序:先小后大,先子类后父类。对于不确定的代码,最后一般添加Exception异常
Tray catch finally:不管有没异常,最终都会执行。 finally一般用来释放资源。
switch case finally:遇到匹配的case,且break,则不执行finally,否则执行。
3.
1)、finally语句总会执行
2)、如果try、catch中有return语句,finally中没有return,那么在finally中修改除包装类型和静态变量、全局变量以外的数据都不会对try、catch中返回的变量有任何的影响(包装类型、静态变量会改变、全局变量)
3)、尽量不要在finally中使用return语句,如果使用的话,会忽略try、catch中的返回语句,也会忽略try、catch中的异常,屏蔽了错误的发生
4)、finally中避免再次抛出异常,一旦finally中发生异常,代码执行将会抛出finally中的异常信息,try、catch中的异常将被忽略
所以在实际项目中,finally常常是用来关闭流或者数据库资源的,并不额外做其他操作。
4.