java try 返回值_java – 理解try catch最后返回它返回的值和值

我有以下代码.

public static void main(String[] args) {

System.out.println(returnString());

}

private static String returnString(){

try {

System.out.println("Executing try");

return "Return try value";

} catch (Exception e){

System.out.println("Executing Catch");

return "Return catch value";

} finally {

System.out.println("Executing finally");

return "Return finally value";

}

}

这个输出是

Executing try

Executing finally

Return finally value

如果我改变我的finally块而不返回任何类似的东西

public static void main(String[] args) {

System.out.println(returnString());

}

private static String returnString(){

try {

System.out.println("Executing try");

return "Return try value";

} catch (Exception e){

System.out.println("Executing Catch");

return "Return catch value";

} finally {

System.out.println("Executing finally");

}

}

然后输出是

Executing try

Executing finally

Return try value

现在我明白了,除非我们调用system.exit(0),否则最终总会被执行;调用或JVM崩溃.

我无法理解的是为什么返回值已经改变了?我仍然希望它返回try块的值.任何人都可以解释为什么最终值被考虑而不是try块的返回值?

请不要回答,因为即使在try块中有返回,最终也会执行…或者最后只有在有system.exit(0)时才执行;调用或JVM崩溃.据我所知.

编辑:(根据Dirk的Dirk评论)

public static void main(String[] args) {

System.out.println(returnString());

}

private static String returnString(){

try {

System.out.println("Executing try");

return printString("Return try value");

} catch (Exception e){

System.out.println("Executing Catch");

return printString("Return catch value");

} finally {

System.out.println("Executing finally");

return printString("Return finally value");

}

}

private static String printString(String str){

System.out.println(str);

return str;

}

输出:

Executing try

Return try value

Executing finally

Return finally value

Return finally value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值