例えば:
public String showMsg(String msg) throws Exception {
if(msg == null) {
throw new Exception("Message is null");
}
//Create message anyways and return it
return "DEFAULT MESSAGE";
}
String msg = null;
try {
msg = showMsg(null);
} catch (Exception e) {
//I just want to ignore this right now.
}
System.out.println(msg); //Will this equal DEFAULT MESSAGE or null?
特定のケースでは例外を本質的に無視する必要があります(通常、メソッドから複数の例外がスローされる可能性があり、特定のケースでは問題にならない場合)。またはスローは実際にメソッドを返しますか?
return
ステートメントは、例外がスローされるとnot実行されます。例外をスローすると、プログラムの制御フローはすぐに例外のハンドラー(*)に移動し、途中で他のものをスキップします。したがって、msg
によって例外がスローされた場合、特にnull
はprintステートメントでshowMsg
になります。
(*)finally
ブロック内のステートメントが実行されることを除きますが、実際にはここでは関係ありません。