看看下面的代碼。雖然catch子句本身引發異常,但finally塊的return語句會導致該異常被吞噬。即使catch塊中出現錯誤,該方法也會返回420。在java的finally子句中有返回語句是危險的嗎?
private static int foo() throws Exception
{
try {
throw new Exception("try");
} catch (Exception ex) {
throw new Exception("catch");
} finally {
String s = "";
return 420;
}
}
你已經描述了它的功能,你又有什麼問題?危險嗎? 「例外」是危險的嗎? –
在此背景下定義「危險」。你所顯示的是合法的,如果返回語句放在try/catch/finally之後,結果會相同。這樣做沒有什麼壞處,所以說它是否「危險」是什麼意思? –
這是保存。 https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html – CyberAleks