中易网

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

答案:6  悬赏:0  
解决时间 2021-03-07 13:06
但是如果finally语句之前我使用了跳转语句,跳转到其他页面,finally还会执行吗?
最佳答案
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中 ,希望对你有所帮助
全部回答
finally语句就算跳转到其他页面,还是会执行的
public static void main(string[] args) { int i = 1; int j = 0; try { system.out.println("hello"); system.out.println(i/j); system.out.println("bye"); } catch (exception e) { // todo auto-generated catch block system.out.println("出现异常了"); e.printstacktrace(); } finally{ system.out.println("计算完毕"); } } 意思是:程序正常执行t里面的代码,当t里面的代码执行出现异常,从出现异常那里开始不执行t中出现异常之后的代码,而执行c中的代码。如果在执行t中的代码没有出现异常,就不执行c中的代码,f中的代码不管是否有异常都会执行,当你需要执行一些不管是否有异常出现都要执行的代码时,可以加上f,f可以不写,一般情况下都不会用到f 此例中1除以0肯定有异常,0不能做除数
finally中的语句暂时不会执行。如果你跳转到其他的代码段,这个try中的代码可看做主调方法,跳转到的代码可看做被调方法。程序的大方向是由上到下进行,如果读到这一引起跳转的语句跳转到其他代码后,必然先开始执行其他的代码,然后其他的代码执行完了,也就是被调方法一行行都执行完了,那么返回主调方法,继续try下面的语句的执行。如果这时候恰巧try中的语句也都执行完了,那么系统这个时候才会自动执行finally中的语句。 finally里面的语句是为了对资源统一进行管理。设想引起跳转的那一句代码要跳转到其他的代码去执行,这一段代码实则可以看做try里面一个完成程序目的一段分支分支,不会一跳转就自动执行finally。 你可以做一个测试,引起跳转的这句话这样写:new A(构造实参).launch(),新new一个A对象并执行launch方法。可能构造方法还需要try里面的参数,如果finally一下子关了肯定不符合逻辑。你可以在launch中写一句输出的话,finally中写一句输出的话,看看那个先执行。
finally是无论如何都会执行的,只是执行的顺序不同罢了。
当然会执行,finally的意思就是你前面所有的语句都执行完了才会执行。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当x趋近1时证明无穷小1-x和1-³√x同阶
韩江鱼粥在哪里啊,我有事要去这个地方
补水喷雾什么牌子的好,补水喷雾哪个牌子
怎样判断select被选中
美一佳我想知道这个在什么地方
mame怎么设置中文
别扭的扭怎么组词
客车灭火器应放在什么地方?
石家庄那里有批发接发,无痕接发的。
春天给了桃花什么补充完整句子
公司起名,想开一个网络营销公司,起个什么名
梦见自己往湖里跳、是故意跳到湖里去的~不知
魔兽世界7.15猫德怎么样能在大秘境中怎么打群
2010年四川少数民族加分是调档加分还是加分后
八字同时出现正官伤官 是不是抵消了?
推荐资讯
纤·丽·媛这个地址在什么地方,我要处理点事
ABCC类型的成语有哪些?
蛇精病不会动 里面那女的是谁?
天猫速捷运动怎么样,卖的东西是假的吗
这是我的号码翻译成英文
为什么下不了丅丅语音
梦幻西游 猴王出世副本失败了怎么办?急
化学,1s<2s<2p<······亚层前加个数
在母亲节,献给母亲的一句话,要运用比喻
李记淮南牛肉汤馆怎么去啊,有知道地址的么
阿森发型工作室地址在哪,我要去那里办事
sfr P1=0x90 是否表示P1各个位的高低电
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?