Java异常try里面有return,finally代码会执行吗
答案:1 悬赏:0 手机版
解决时间 2021-12-01 20:51
- 提问者网友:ミ烙印ゝ
- 2021-12-01 05:50
Java异常try里面有return,finally代码会执行吗
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-12-01 07:17
finally段的代码无论是否发生异常都要执行!
代码执行顺序介绍:
如果try中的语句出现异常,那么try块中异常语句后的代码不执行,直接执行catch块中的代码,最后执行finally块中的代码(遇到return结束程序);如果try中的语句没有异常,执行try块中return前的语句,最后执行finally块中的语句(遇到return结束程序),不会执行catch块中的语句。
代码演示验证:
public static void main(String[] args) {
try {
System.out.println("try中的语句");
return;
} catch (Exception e) {
System.out.println("catch中的语句");
return;
} finally {
System.out.println("finally中的语句");
}
}
}执行效果:
public static void main(String[] args) {
try {
int ii = 5;
ii = ii / 0; // 分母不能为0,此处有异常
System.out.println("try中的语句");
return;
} catch (Exception e) {
System.out.println("catch中的语句");
return;
} finally {
System.out.println("finally中的语句");
}
}
}执行效果:
代码执行顺序介绍:
如果try中的语句出现异常,那么try块中异常语句后的代码不执行,直接执行catch块中的代码,最后执行finally块中的代码(遇到return结束程序);如果try中的语句没有异常,执行try块中return前的语句,最后执行finally块中的语句(遇到return结束程序),不会执行catch块中的语句。
代码演示验证:
- 当try块中return前的语句没有异常时
public static void main(String[] args) {
try {
System.out.println("try中的语句");
return;
} catch (Exception e) {
System.out.println("catch中的语句");
return;
} finally {
System.out.println("finally中的语句");
}
}
}执行效果:
- 当try块中return前的语句出现异常时:
public static void main(String[] args) {
try {
int ii = 5;
ii = ii / 0; // 分母不能为0,此处有异常
System.out.println("try中的语句");
return;
} catch (Exception e) {
System.out.println("catch中的语句");
return;
} finally {
System.out.println("finally中的语句");
}
}
}执行效果:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯