try ... catch中Throw异常后的执行顺序

在Try ... Catch代码中, Throw异常后,throw后面的代码不再执行,直接执行Catch处的代码,并且Finally处的代码也会执行。

如果没有Catch语句,或者有Catch,但不符合异常处理的条件,则直接跳转到调用此代码的位置;如果还是没有catch,则继续回调,直到被处理或者回到最初的位置。


正常处理流程:

输出:
05-06 11:45:25.246: DEBUG/--------------(306): c = 0.02999999999999936
dsdasd
sdddd
end
--- finally is.close ---
--- finally br.close ---
--- finally ---

 

异常处理,把文件名改为一个不存在的文件:

 

输出:

java.io.FileNotFoundException: /home/min/lssog.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at com.min.test.JavaTest.main(JavaTest.java:20)
--- FileNotFoundException ---
--- finally ---

 

PS:无论是在try还是在catch块中加上return,都会执行fianlly区域的处理。

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值