加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用try-catch-finally返回类型

发布时间:2020-12-14 19:37:31 所属栏目:Java 来源:网络整理
导读:参见英文答案 Java’s return value in try-catch-finally mechanism4个 我试过以下代码片段: private Integer getnumber() { Integer i = null; try { i = new Integer(5); return i; } catch(Exception e) { return 0; } finally { i = new Integer(7); }
参见英文答案 > Java’s return value in try-catch-finally mechanism4个
我试过以下代码片段:
private Integer getnumber() {
    Integer i = null;
    try {
        i = new Integer(5);
        return i;
    } catch(Exception e) {
        return 0;
    } finally {
        i = new Integer(7);
    }
}

此方法返回5而不是7.

Why it returns 5 and not 7?

提前致谢.

解决方法

发生这种情况是因为try..catch的finally块最终在try..catch中的代码完成后运行(无论成功与否);在您的代码的情况下,这是返回i发生的时间.

由于这种行为,在您为其分配新值7之前,i的值已经被放入方法的返回变量中.以下将有效:

private Integer getnumber(){
  Integer i = null;
  try {
    i = new Integer(5);
  }
  catch(Exception e){
    i = new Integer(0);
  }
  finally{
    i = new Integer(7);
  }
  return i;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读