java之异常处理

Posted scanner小霸王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之异常处理相关的知识,希望对你有一定的参考价值。

1.异常处理机制的价值:

出现异常,程序还能继续执行

2异常的分类:error 和exception(编译和运行时异常(可不处理))

在这里插入图片描述

3异常体系图

在这里插入图片描述

4异常处理的两种方式

a)try-catch-finally(程序员代码捕获)
处理机制图:
在这里插入图片描述

b)throws将发生的异常抛出,交给调用者来处理,最顶级的处理者就是jVM
throws处理机制图:
JVM:打印错误信息,退出程序
如果程序员,没有显示是处理异常,默认是throws
在这里插入图片描述

5.try-catch-finally具体分析

a)可以有多个catch语句,捕获不同的异常,要求父异常在后,子类异常在前,例如exception在后,NullPointerException在前,如果异常只会匹配到一个异常
b)习题巩固
ii)习题一:
空指针异常,本来应该return 3,但是finally是必须要执行的,所以应该是执行finally的return 4
在这里插入图片描述
ii)习题2:
空指针异常,先++i变成3,但是由于有finally,所以catch还不能return,接着调用finally ,变成4返回
在这里插入图片描述
ii)习题3:
还是空指针到catch中 i=3但还不能返回,所以现将i存储在临时变量上,temp =3;接着执行finally时候i等于4,所以输出4;但是需要返回一条语句,而finally没有返回语句,所以返回 catch的return 3
在这里插入图片描述
c)小结:
在这里插入图片描述

6.throws异常处理:

该方法不处理,让方法的调用者自行处理;
可以抛出多个异常
在这里插入图片描述
a)子类重新父类方法时候,对抛出异常的规定:所抛出的异常类型要么与父类抛出的异常一致,要么为父类抛出的异常类型的子类型
b)当抛出编译型异常的时候,调用者也需要做出相对应的处理;当抛出是运行时异常的时候,调用者可以不处理,因为运行异常有默认的处理方式

c)throw和throws区别
在这里插入图片描述
throw方法体内:
在这里插入图片描述

d)习题巩固:
在这里插入图片描述

以上是关于java之异常处理的主要内容,如果未能解决你的问题,请参考以下文章

java之struts2之异常处理

Java异常处理之InvocationTargetException(反射异常)

java之异常处理

Java面向对象编程之异常处理机制

Java面向对象之异常(异常处理方式)

Java处理异常之输入数字异常