为了账号安全,请及时绑定邮箱和手机立即绑定

try catch finally的执行顺序能总结一下么

感觉有点混乱

正在回答

4 回答

try和catch配合用,捕捉异常

执行的代码放入到try中进行捕捉,一旦出现异常,catch块就会相应的抛出

而在最后的finally块,则会始终执行,不论有无异常

0 回复 有任何疑惑可以回复我~
#1

蝶梦疏妄 提问者

如果有两重代码在try中执行,两个都有异常,想知道这个时候finally的执行顺序,看老师的那个好像是finally只执行一次,那个时候,三个的执行顺序又是怎么样的?
2016-11-01 回复 有任何疑惑可以回复我~
#2

队长给我球 回复 蝶梦疏妄 提问者

你的意思是try块中出现两种异常,这个时候finally块怎么执行是吧? try块中每捕捉一个异常,catch块就会抛出相应的异常(捕捉一个就抛出一个),控制台会给出相应的信息 finally块始终只会执行一次,不论有多少异常
2016-11-01 回复 有任何疑惑可以回复我~
#3

蝶梦疏妄 提问者 回复 队长给我球

finally是那个时候执行的?最开始还是最后
2016-11-01 回复 有任何疑惑可以回复我~
#4

队长给我球 回复 蝶梦疏妄 提问者

整个try块和catch块执行完之后,最后执行finally块 你可以去调试下,就能明显看出来了
2016-11-01 回复 有任何疑惑可以回复我~
#5

慕粉4226835 回复 蝶梦疏妄 提问者

finally是最后执行的。
2016-11-02 回复 有任何疑惑可以回复我~
#6

蝶梦疏妄 提问者 回复 慕粉4226835

也就是说在第一次finally没有执行而是直在第二次(最后一次)末尾执行一次
2016-11-02 回复 有任何疑惑可以回复我~
查看3条回复

1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
举例:

0 回复 有任何疑惑可以回复我~
#1

蝶梦疏妄 提问者

如果有两重代码在try中执行,两个都有异常,想知道这个时候finally的执行顺序,看老师的那个好像是finally只执行一次,那个时候,三个的执行顺序又是怎么样的?
2016-11-01 回复 有任何疑惑可以回复我~

try中编写的是逻辑代码,如果这段代码有异常出现的话,catch会捕捉到,并抛出异常信息。如此以来,会先执行try,如果没有异常则跳过catch,有异常就会执行catch的操作。finally是catch之后执行的。

2 回复 有任何疑惑可以回复我~
#1

蝶梦疏妄 提问者

如果有两重代码在try中执行,两个都有异常,想知道这个时候finally的执行顺序,看老师的那个好像是finally只执行一次,那个时候,三个的执行顺序又是怎么样的?
2016-11-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409784    人
  • 解答问题       4339    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

try catch finally的执行顺序能总结一下么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信