try-with-resources
に続くcatch
が初期化部分をカバーするかどうかは、documentationからは不明です。言い換えればtry-with-resourcesのcatchは、かっこ内のコードをカバーしていますか?
、このコードの断片を与えられた:IOException
がgetSomeStream()
内をスローされた場合
try (InputStream in = getSomeStream()) {
System.out.println(in.read());
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
は私catch
が呼び出されますか?
catch
は、中括弧内のブロックのみをカバーしますか?つまり、System.out.println(in.read())
?
「https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html 「try-with-resourcesステートメントは通常のtryステートメントのようにcatchとfinallyブロックを持つことができます。 try-with-resourcesステートメントでは、宣言されたリソースが閉じられた後にcatchまたはfinallyブロックが実行されます。 これは、キャッチブロックが通常どおり処理されることを意味します。キャッチに達する前に、リソースが後で閉じられるよう気にしないでください。 – DiabolicWords
@DiabolicWords何か不足していますか?そのパラグラフにその質問に答える何かがありますか? – Michael