永发信息网

java try catch return 谁先执行问题,你能说明白吗

答案:6  悬赏:0  手机版
解决时间 2021-02-09 08:01
java try catch return 谁先执行问题,你能说明白吗
最佳答案
先执行try,直接在try和catch之间填充需要捕获异常的代码,之后如果有异常直接走catch分支,进行异常捕获。
如:
try{
//先执行
} catch (Exception e) {
System.out.println(e.getMessage()); //如果有异常则执行
}
return;//如果没有异常则执行
解释:以上代码中如果在”//需要捕获异常的代码“ 中有错误,会直接进行控制台输出。
全部回答
你发了好几遍了.
结果应该是1 2
问那么多次,没意义,看另一个答案追问重复提交了
第一个问题:输出的是1,因为finally总是在try-catch执行之后执行,而且,一定是在return之前执行。第一个问题里应该是在return x;之前执行,但是,此时return的值已经固定了,就是说finally再执行也改变不了return的值,当然x的值成了2,但是return的值已经固定为1了。
第二个问题:输出的是2,因为finally一定是在return之前执行,本来程序return的值是1,即将要return了,但是有finally,所以finally先执行,所以return的值是2。
但是第二种情况不建议使用,就是说finally里不建议用return,因为这样finally就没有正常的执行完毕,这是不推荐的。
问题1 输出结果是1
问题2 输出结果是2
finally中的语句是一定要执行的,这点是肯定的。finally中的语句执行在try之后。通常try是要和catch(不捕获异常try就没意义了)。一般的用法是:
try{
1想要执行的代码
}catch(Exception e){
2异常处理
}finally{
3最终执行的代码
}
1中代码没错执行的顺序就是1->3
1中代码有错执行的顺序是2->3
finally中的代码和return是没关系的,你可以把return写在任何地方。它只和try、catch有关。假如你把问题一种finally的代码写成:
finally{
return ++x;
}那么结果就是2了。
finally一定会执行,且在try或catch之后执行。
不知道这么说能明白吗~~~
不明白可以问,我再回答~~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
别人说come on鼓励你时,应该怎么回答?
威震乾坤第一功,辕门画鼓响冬冬。 云长停盏
迎驾悦达汽车销售服务有限公司地址在什么地方
如何修建养甲鱼的水池
亚马逊牛排·海鲜自助餐厅在什么地方啊,我要
【通过人体的安全电流是多少】通过人体的安全
求古今中外神话爱情故事?
求东北大鼓 《剑阁闻铃 忆真妃》
农村信用社的卡丢了好久了 也没有挂失 在办一
邯郸605路公交车票价表
大众迈腾1.4Tsi一年的维修加保养需多少钱?
沈阳到北京高速通了吗
成都学院的护理专业怎么样?
请教专业:DVD机的仓门为什么一关上就自动打开
下列关于内环境稳态描述的叙述,正确的是A.
推荐资讯
你好,我被一个女孩子骗了钱,后来她又拉黑我
焊工证在武汉市江夏区有办理的吗?办理大概需
正规途径弄来的香烟散装卖犯法吗?就是进来后
电脑的分辨率调不到 1920*1440
付家庄小渔村八一路店在什么地方啊,我要过去
OPPOr9可以同时登录两个QQ吗
当男人会主动给你发任何视频时候会代表着什么
表压、绝压、差压的定义和区别最好简单易懂,
转炉炼钢常用的脱氧剂有哪些
对酒精过敏的人经常喝酒会怎么样
宝贝宠物地址在哪,我要去那里办事
叶子美甲美睫地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?