第十一章 异常

在这里插入图片描述
在这里插入图片描述

1.异常处理入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.异常基本介绍

OOM内存不足
在这里插入图片描述

上一节的例子就是运行时异常

3.异常体系图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.五大运行时异常

在这里插入图片描述
NullPointerException空指针异常
当一个对象还没有创建起来就去使用,就会抛出这个空指针异常
在这里插入图片描述
在这里插入图片描述

ArithmeticException异常
在这里插入图片描述
在这里插入图片描述

ArrayIndexOutOfBoundsException异常
在这里插入图片描述
在这里插入图片描述

ClassCastException异常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NumberFormatException异常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.编译异常

在这里插入图片描述
在这里插入图片描述

6.异常课堂练习

在这里插入图片描述
在这里插入图片描述

7.异常处理方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.try-catch异常处理(细节)

在这里插入图片描述
在这里插入图片描述

细节一
在这里插入图片描述
在这里插入图片描述

细节二
在这里插入图片描述

细节三
如果没有异常
在这里插入图片描述
如果有异常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

细节四
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果父类异常写在了前面,会报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
细节五
这种情况就是不去管异常,但要做一些善后处理
即使没有出现异常,也要进行一些善后处理
但是相当于没有处理异常,程序该崩还是崩

下面是有异常的情况
在这里插入图片描述
注意这里先执行finally才会崩,而且最后的继续执行不会输出
在这里插入图片描述
下面是没有异常的情况
在这里插入图片描述
在这里插入图片描述

9.try-catch练习

在这里插入图片描述

return只能返回一个值,而finally的返回权限最高
在这里插入图片描述

第二题
在这里插入图片描述
在这里插入图片描述

第三题
在这里插入图片描述
在这里插入图片描述
finally中的++i没有return
在这里插入图片描述
在这里插入图片描述

10.try-catch最佳实践

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.throws入门案例

在这里插入图片描述
在这里插入图片描述
第一条
在这里插入图片描述
第二条
在这里插入图片描述
在这里插入图片描述
这里可以抛给方法中产生的异常,也可以是他的父类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.throws使用细节

在这里插入图片描述

第一条
如果上面没有异常处理机制会报错
在这里插入图片描述

第二条
在这里插入图片描述
其实上面默认有句话,虽然我们感觉不到
在这里插入图片描述
首先传到调用它的方法名,最后传到jvm,jvm会直接给你挂掉
在这里插入图片描述
在这里插入图片描述

第三条
在这里插入图片描述
这里NullPointerException是RuntimeException的子类
在这里插入图片描述

下面这样就会报错
在这里插入图片描述

下面还有额外的一个细节
在这里插入图片描述
可以这样处理
在这里插入图片描述
也可以这样处理
在这里插入图片描述
在这里插入图片描述

如果是运行异常就不会报错
在这里插入图片描述
因为有默认处理机制
在这里插入图片描述

13.自定义异常(throw)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后将message赋给detailmessage,最后detailmessage将输出
在这里插入图片描述
输出

在这里插入图片描述
如果是编译异常会很麻烦,结果如下所示
在这里插入图片描述
在这里插入图片描述

14.throw VS throws

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.异常课后作业1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先配置两个参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面这个是参数个数不对的情况
在这里插入图片描述
在这里插入图片描述

下面是参数格式不正确的情况
在这里插入图片描述
在这里插入图片描述

下面除0的异常
在这里插入图片描述
在这里插入图片描述

16.异常课后作业2

在这里插入图片描述
在这里插入图片描述

改成下面这样就没有问题了,因为本身就是字符串,向下转型没有问题
在这里插入图片描述

17.异常课后作业3

在这里插入图片描述
在main方法中,调用func()中抛出了异常,所以下面的输出A不再执行
因为已经捕获了异常,所以程序不会退出,所以下面的D也执行
在这里插入图片描述
在这里插入图片描述

18.异常课后作业4

在这里插入图片描述
在调用showExce()方法时,会抛出异常,一旦抛出异常,下面的System.out.println(“A”)就不会再执行了。最后的输出D也会执行,因为异常已经被处理,程序不会停止运行。
所以结果也是B C D

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值