异常细节说明

异常结构图

在这里插入图片描述
异常顶级父类是:Thorwable 它的两个子类是:Error Exception(中文译为异常)

  • Exception的两个子类为:编译异常和运行异常

  • 编辑异常的核心为:提醒程序员检查本地编译错误

  • 运行异常的核心为:注意由参数错误引起的问题

  • 编辑异常为:处RuntinmeException以及RuntinmeException的子类以外的异常都叫编辑异常

  • 运行异常为:RuntinmeException以及RuntinmeException的子类以内的异常都叫编辑异常(必须有程序员手动处理)

异常的好处:

1.查询bug的相关信息

2.可作为方法的返回值,告诉调用者底层执行的结果

处理异常的方法:

1.JVM处理:就是程序员不处理异常,而且后来接受项目的程序员也

不想处理,最后只好JAVA中的JVM进行处理,有一点不好的是如果有

异常代码的后面还有代码,那么后面这一部分的代码就不会运行了

2.使用try------cash捕获处理:与第一种相比当成功捕获异常后,异常

后面的代码还是会运行,try------cash的底层会在try中创建异常对象拿

去与cash中的异常比较,如果一样就捕捉成功。但这种异常的处理又

分四种情况:1.如果try中只存在一个异常且被成功捕获,那么try中的

代码会完整的运行 2.如果try中有多个异常,那么就有两种解决方案,

一种就是一个一个的去捕捉或者一次性捕捉。一个一个的去捕捉需要

创建多个cash且要学写对每种异常对应的异常报错的异常名称,try中

的代码也会完整的执行;一次性捕捉就只要创建一次cash,cash中写

Exception e就行,try中的代码也会完整的执行3.如果try中的异常没有

被捕获,那么代码就会停止运行4.如果try中异常没有捕捉成功且异常

代码的下面还有代码,那么异常代码下面的代码就不会运行。

3.异常抛出:需要用的两个关键字throw和throws,前者是会返回一个

异常对象告诉调用者方法运行失败的原因,后者是告诉调用者调用方

法运行可能失败的原因(在运行异常中不用写出),这种方式经常会

和自定义异常一起使用。

自定义异常:是指的是不符合业务需求代码。就比如说一个业务规定

人的名字不能超过2个字符,那么你在调用者输入自己名字字符的时候

就会加入一个if判断,但是这种判断的结果时返回在控制台,而调用者

并不知道自己的名字为什么录入不进去,这是你就需要用到抛出异

常,将原因返回给调用者,但这种字符长度的错误并不是Java的编辑

异常和自带的运行异常,而是业务的要求导致,而Java中的异常又无

法表示你这种异常,所以你要增加一个能够表示这种情况的异常,创

建一个新的异常名字要见名知意,要有空参构造和有参构造,因为符

合运行异常的核心所以要继承Exception

场景使用:

 在平时的业务之中一般就是try------cash加异常抛出加自定义异常

猜你喜欢

转载自blog.csdn.net/2201_75506216/article/details/131906384