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区域的处理。

发布了270 篇原创文章 · 获赞 273 · 访问量 377万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览