第九章--Java异常和异常处理 第二节--Java异常处理

异常处理(1):

异常处理(的目的):

(1)允许用户及时保存结果

(2)抓住异常,分析异常内容

(3)控制程序返回到安全状态

异常处理(2):

---- try - catch - finally :一种保护代码正常运行的机制

---- 异常结构:

(1)try ... catch(可以有多个,下同)

(2)try ... catch ... finally 

(3)try ... finally

注意:try必须有,catch和finally至少要有一个

异常处理(3):

---- try:正常业务逻辑代码

---- catch:当try发生异常时,将执行catch代码。若无异常,绕之

---- finally:当try或者catch执行结束后,必须要执行finally

查看例子TryDemo.java

异常处理(4):

----catch块可以有多个,每个有不同的入口形参。当已发生的异常和某一个catch块中的形参类型一致,那么将执行该catch块中的代码。如果没有一个匹配,catch也不会被触发。最后都进入finally块

----进入catch块后,并不会返回到try发生异常的位置,也不会执行后续的catch块,一个异常只能进入一个catch块

异常处理(5):

----catch块的异常匹配是从上往下进行匹配的

----所以一般是将小的异常写在前面,而一些大(宽泛)的异常则写在末尾(多个catch的情况,小异常写在前面,大异常写在后面,否则会报错)

异常处理(6):

----try结构中,如果有finally块,finally肯定会被执行

----try - catch - finally 每个模块里面也会发生异常,所以也可以在内部继续写一个完整的try结构

可以包含一个完整的try - catch - finally,但是不允许嵌套:

异常处理(7):

----方法存在可能异常的语句,但是不处理,那么可以使用throws来声明异常

----调用带有throws异常(checked exception)的方法,要么处理这些异常,或者再次向外throws,直到main函数位置

(也就是说,有的代码没有try-catch块,你调用我的程序,需要考虑是否处理这个异常,如果不处理,你的方法也要声明,然后向外抛出)

举个例子:

下面代码y可能是0,但是不处理,只抛出这个异常

另一个程序调用上面的方法,就有义务来承担这个异常的处理。比如使用try-catch处理这个异常。或者在定义方法时也抛出这个异常(包括在main函数里面)。

异常处理(8):(与继承相关的异常处理)

----一个方法被覆盖,覆盖它的方法必须抛出相同的异常,或者异常的子类

----如果父类的方法抛出多个异常,那么重写的子类方法必须抛出那些异常的子集,也就是不能抛出新的异常或者更多的异常

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值