初学java,求教try catch后使用finally的作用是关闭对象 30

但是如果finally语句之前我使用了跳转语句,跳转到其他页面,finally还会执行吗?... 但是如果finally语句之前我使用了跳转语句,跳转到其他页面,finally还会执行吗? 展开
 我来答
love爱有缘
2013-03-09 · TA获得超过1041个赞
知道小有建树答主
回答量:789
采纳率:0%
帮助的人:695万
展开全部
try{
}catch(){
}finally{
}

该结构是用来捕捉异常信息的 ,异常来源于try块中, 在catch中进行处理 finally可以对资源进行释放或其他操作
1. 假如 在try中没有异常产生,并return finally 仍然会执行, 将return 的结果保存,执行完finally在return
2 , 在1的基础上,如果 finally中最后也return 那个,try中的return会失效 ,执行finally中return
3. 如果try 或者catch(有异常的情况下)中不是return 而是写的是 System.exit(0); 那么finally此时不执行,直接关闭虚拟机。
4 .在2的基础上,如果finally中嵌套 try finally结构的话 ,执行完 finally里面的try 在执行 finally中的finally
5 . 在4的基础上 如下代码会产生错误
try{
}catch(){
}finally{
try{
}catch(){
}finally{
return 1;
}
return 0;
}
因为finally要求代码必须被执行,虚拟机此时不知道 return1必须被执行,还是return 0 必须被执行,因为 他么都在finally中 ,希望对你有所帮助
zhige1202
2013-03-08 · TA获得超过126个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:88.9万
展开全部
当然会执行,finally的意思就是你前面所有的语句都执行完了才会执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_陈帅康
2013-03-09 · TA获得超过1338个赞
知道小有建树答主
回答量:300
采纳率:75%
帮助的人:136万
展开全部
finally是无论如何都会执行的,只是执行的顺序不同罢了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-08
展开全部
finally中的语句暂时不会执行。如果你跳转到其他的代码段,这个try中的代码可看做主调方法,跳转到的代码可看做被调方法。程序的大方向是由上到下进行,如果读到这一引起跳转的语句跳转到其他代码后,必然先开始执行其他的代码,然后其他的代码执行完了,也就是被调方法一行行都执行完了,那么返回主调方法,继续try下面的语句的执行。如果这时候恰巧try中的语句也都执行完了,那么系统这个时候才会自动执行finally中的语句。
finally里面的语句是为了对资源统一进行管理。设想引起跳转的那一句代码要跳转到其他的代码去执行,这一段代码实则可以看做try里面一个完成程序目的一段分支分支,不会一跳转就自动执行finally。
你可以做一个测试,引起跳转的这句话这样写:new A(构造实参).launch(),新new一个A对象并执行launch方法。可能构造方法还需要try里面的参数,如果finally一下子关了肯定不符合逻辑。你可以在launch中写一句输出的话,finally中写一句输出的话,看看那个先执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
594214009
2013-03-21 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:120万
展开全部
不管你前面有什么,finally必然执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liulanglxl
2013-03-14
知道答主
回答量:4
采纳率:0%
帮助的人:5982
展开全部
finally语句就算跳转到其他页面,还是会执行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式