私はこの質問に出くわしました。私は出力の理由を理解できません。最後に文字列が返り、ブロックします
プログラムは次のとおりです。
は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ブロック
から
戻り値さて、私はそれと
return s
声明でs
の値でのデバッグtry
ブロックはreturn value from try block
,return value from catch block
,returned from finally block
。それでも出力は次のとおりです。tryブロック
から
戻り値はいずれも、この動作を説明していただけますか?
この1つhttps:// stackoverflowを参照してください。com/questions/65035/do-finally-always-in-java-in- – mmuzahid
私はあなたがここでもっと明確になると思う[try-catch-finally-return clarification - Stack Overflow](https://stackoverflow.com/questions)/01225819/try-catch-finally-return-clarification) –
答えはoracleのドキュメントにあります。 "tryブロックが終了するとfinallyブロックが常に実行されます。これにより、予期しない例外が発生してもfinallyブロックが確実に実行されます。 " 次の点を確認してください。https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html – Oghli