Java异常发生时程序的执行顺序

一些基础知识:

1.try代码段包含可能产生例外的代码;
2.try代码段后跟有一个或多个代码段;
3.每个catch代码段声明其能处理的一种特定的异常并提供处理的方法;
4.当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段,有多个符合条件的catch时,只执行第一个;
5.finally段的代码无论是否发生异常都会执行。
6.在一个try语句块中,基类异常的捕获语句不可以写在子类异常捕获语句的上面。

 

看一个例子:

 

输出的结果是2,3,4,5    (这里的逗号只用于显示)。上述语句非常清楚,但是在上述结构中加上return,就变得有些复杂了,如  

 

输出的结果是2,4也就是说在try结构中,虽然使用了return语句强制函数返回,不再往下执行,但实现上finally中的还是执行了。但除了finally外的其它语句不再被执行。

一个更流行的例子是:

结果是:

如果在catch块中抛出异常,则结果为:

 

注意:如果异常往上抛直到main函数还没有被catch处理的话,程序将被异常终止。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值