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

那不就是不写finally更省事?

那不就是不写finally更省事?

哈士奇WWW 2023-01-12 22:18:11

如:
try{...}
catch(Exception e){...}
finally{System.out.println(e)}

try{...}
catch(Exception e){...}
System.out.println(e);

它们的System.out.println(e)都会执行;那写在finally{}里面有什么用?

查看完整描述

1 回答

?
喵喔喔

TA贡献1492条经验 获得超5个赞

try{}catch(){}finally{}该结构是用来捕捉异常信息的,异常来源于try块中,在catch中进行处理finally可以对资源进行释放或其他操作1.假如在try中没有异常产生,并returnfinally仍然会执行,将return的结果保存,执行完finally在return2,在1的基础上,如果finally中最后也return那个,try中的return会失效,执行finally中return3.如果try或者catch(有异常的情况下)中不是return而是写的是System.exit(0);那么finally此时不执行,直接关闭虚拟机。4.在2的基础上,如果finally中嵌套tryfinally结构的话,执行完finally里面的try在执行finally中的finally5.在4的基础上如下代码会产生错误try{}catch(){}finally{try{}catch(){}finally{return1;}return0;}因为finally要求代码必须被执行,虚拟机此时不知道return1必须被执行,还是return0必须被执行,因为他么都在finally中,希望对你有所帮助

查看完整回答
反对 回复 2023-01-15
  • 1 回答
  • 0 关注
  • 5 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信