java常见面试考点
往期文章推荐:
java常见面试考点(三十五):UDP和TCP的区别及应用场景
java常见面试考点(三十六):CountDownLatch和CyclicBarrier的区别
java常见面试考点(三十七):面向对象的三大特性
java常见面试考点(三十八):hashcode与equals
java常见面试考点(三十九):Math.round()方法
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:java常见面试考点(四十):try-catch-finally;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
一、try-catch-finally
代码如下所示:猜猜结果如何
public int getNum(){
try{
int a = 1/0;
return 1;
}catch (Exception e){
return 2;
}finally{
return 3;
}
}
//结果为3
-
try-catch-finally
首先执行try语句块的语句,2种情况:
(1)try块语句正常执行完毕,finally块也被执行。
(2)try块语句在执行过程中碰到异常,2种情况:
有catch:捕获异常,执行catch块,finally块也被执行。 无catch:由于抛出异常而终止,finally块也被执行。
-
try-catch-finally程序块中的return
return在try、catch中的作用:控制转移,将控制权(语句流程)转到finally块中。
无论try或catch发生了什么情况,finally都是会执行的,唯一不执行的情况是遇到System.exit()。如果存在finally,那么finally必须被执行,如果finally中有return语句,则返回值就是finally中的return值,如果finally语句中没有return语句,则跳回上一个执行阶段,返回值就是上个执行阶段的return值。这就是try-catch-finally的return语句重写。