main方法是JVM调用的,如果main方法把异常抛给JVM,则JVM内部还是会用try catch把异常进行处理,控制台返回相关异常信息。
throws用于方法抛异常。throw new 异常类用于语句中
1.在自定义异常类extends RuntimeException并重写有参和无参构造器,然后构造器内部super(自定义异常信息)
1.extends Exception,然后重写无参构造器和有参构造器方法调用super(自定义信息)
异常提高系统的健壮性(容错),提高用户体验。
推荐的异常处理
不推荐的异常处理
示例代码:
对异常信息相应直观的信息。
对任何异常都抛出用throws Exception ,捕获异常的话直接写catch(Exception e),好处是对异常做统一处理,但是坏处是不能对单个异常,做单个特殊异常处理。
示例代码:
示例代码:
1.无异常,执行finally
2.出现异常,仍然执行finally
3.无finally,但捕获到了异常,下面代码可正常执行
4.try、catch中出现return,finally还是会执行
5.除非虚拟机终止,finaly才不会执行,见下图
6.尽管try,catch有return,但只要finally中有return,那么return的值一定是finally中的return的值
finally中一般用来释放资源,不太推荐return返回值
释放资源
try-catch执行完成后,会自动执行资源的close()方法
图1-1
格式:
try(
资源
)
资源就是该类实现AutoCloseable接口或者它的父类实现了AutoCloseable也算该子类实现了哦,在代码执行后会自动执行重写的close()方法,如上图1-1。