千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > javafinally和return的执行顺序

javafinally和return的执行顺序

来源:千锋教育
发布人:qyf
时间: 2023-05-17 17:44:00 1684316640

  在Java中,当一个方法中有try-catch-finally块时,无论异常是否发生,finally中的代码都会被执行。同时,finally块中的代码会在return语句之前执行。

  具体来说,当在try块中执行return语句时,它不会立即返回,而是先将返回值存储起来,然后才执行finally块中的代码。如果finally块中有return语句,则会覆盖之前存储的返回值,否则,之前存储的返回值将被返回。

  例如,考虑以下代码:

public static int foo() {
try {
return 1;
} finally {
return 2;
}
}

  在这个例子中,当调用foo方法时,它将返回2,而不是1。这是因为try块中的return语句将返回值设置为1,但是在finally块中又将其覆盖为2。如果finally块中没有return语句,则返回值将为1。

  需要注意的是,如果在finally块中抛出异常,则该异常将会覆盖之前发生的任何异常或返回值。因此,在finally块中应该尽量避免抛出异常,或者确保已经处理了所有可能的异常。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT