Java异常try里面有return,finally代码会执行吗
1个回答
展开全部
finally段的代码无论是否发生异常都要执行!
代码执行顺序介绍:
如果try中的语句出现异常,那么try块中异常语句后的代码不执行,直接执行catch块中的代码,最后执行finally块中的代码(遇到return结束程序);如果try中的语句没有异常,执行try块中return前的语句,最后执行finally块中的语句(遇到return结束程序),不会执行catch块中的语句。
代码演示验证:
当try块中return前的语句没有异常时
public class ReturnTest {
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 class ReturnTest {
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中的语句");
}
}
}
执行效果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询