我遇到了这个问题,我无法理解它给出的输出的原因。字符串最终返回并尝试块
的程序是:
public static String method(){
String s = new String();
try
{
s = "return value from try block";
return s;
}
catch (Exception e)
{
s = s + "return value from catch block";
return s;
}
finally
{
s = s + "return value from finally block";
}
}
输出是:从try块
返回值现在,我调试它和
s
在return s
声明价值try
区块为return value from try block
,return value from catch block
之后returned from finally block
。不过输出结果是:从try块
返回值可以在任何一个请解释这种现象?
看到这个https:// stackoverflow。我想你会在这里找到更多的解释[Try-catch-finally-return澄清 - 堆栈溢出](https://stackoverflow.com/questions)/ /问题/ 65035 /不终于总是执行在java中 – mmuzahid
/15225819/try-catch-finally-return-clarification) –
答案来自oracle文档: “finally块总是在try块退出时执行,这确保finally块即使发生意外异常也会执行。 “ 检查此参考:https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html – Oghli