Java异常处理、自定义运行和编译异常及释放资源try-with-resouce

定义

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第1张图片

异常的体系

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第2张图片

main方法是JVM调用的,如果main方法把异常抛给JVM,则JVM内部还是会用try catch把异常进行处理,控制台返回相关异常信息。

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第3张图片

自定义异常(运行时异常、编译时异常)

throws用于方法抛异常。throw new 异常类用于语句中

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第4张图片

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第5张图片

1.自定义运行时异常

1.在自定义异常类extends RuntimeException并重写有参和无参构造器,然后构造器内部super(自定义异常信息)

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第6张图片

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第7张图片

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第8张图片

2.自定义编译时异常

1.extends Exception,然后重写无参构造器和有参构造器方法调用super(自定义信息)

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第9张图片

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第10张图片

异常的处理

异常提高系统的健壮性(容错),提高用户体验。

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第11张图片

推荐的异常处理

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第12张图片

不推荐的异常处理

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第13张图片

1.响应合适的信息给用户

示例代码:

对异常信息相应直观的信息。

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第14张图片

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第15张图片

对任何异常都抛出用throws Exception ,捕获异常的话直接写catch(Exception e),好处是对异常做统一处理,但是坏处是不能对单个异常,做单个特殊异常处理。

2.尝试修复

示例代码:

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第16张图片

finally

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第17张图片

示例代码:

1.无异常,执行finally

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第18张图片

2.出现异常,仍然执行finally

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第19张图片

3.无finally,但捕获到了异常,下面代码可正常执行

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第20张图片

4.try、catch中出现return,finally还是会执行

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第21张图片

5.除非虚拟机终止,finaly才不会执行,见下图

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第22张图片

6.尽管try,catch有return,但只要finally中有return,那么return的值一定是finally中的return的值

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第23张图片

finally中一般用来释放资源,不太推荐return返回值

释放资源

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第24张图片

释放资源(try-with-resource方法)

1.try-catch-finally(代码比较复杂,但也可以使用)

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第25张图片

2.try-witch-resource(代码简洁)

try-catch执行完成后,会自动执行资源的close()方法

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第26张图片

图1-1

Java异常处理、自定义运行和编译异常及释放资源try-with-resouce_第27张图片

格式:

try(

资源

)

资源就是该类实现AutoCloseable接口或者它的父类实现了AutoCloseable也算该子类实现了哦,在代码执行后会自动执行重写的close()方法,如上图1-1。

你可能感兴趣的:(Java学习从0到1,java,开发语言)