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

发布时间:2023年12月20日

定义

image-20231205222111614

异常的体系

image-20231205222256344

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

image-20231205222929054

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

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

image-20231205223039771

image-20231205223048104

1.自定义运行时异常

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

image-20231205223213981

image-20231205223406325

image-20231205223611574

2.自定义编译时异常

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

image-20231205223907560

image-20231205224237915

异常的处理

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

image-20231205225440966

推荐的异常处理

image-20231205224652782

不推荐的异常处理

image-20231205224731198

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

示例代码:

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

image-20231205224942069

image-20231205225039317

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

2.尝试修复

示例代码:

image-20231205225350376

finally

image-20231207140015563

示例代码:

1.无异常,执行finally

image-20231207135206284

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

image-20231207135229385

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

image-20231207135332701

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

image-20231207135439714

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

image-20231207135528926

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

image-20231207135724209

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

释放资源

image-20231207140214038

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

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

image-20231207140333168

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

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

image-20231207141017056

图1-1

image-20231207140912239

格式:

try(

资源

)

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

文章来源:https://blog.csdn.net/qq_62614525/article/details/135097544
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。