Java では、一般的な例外がキャッチされて再スローされた場合、外部メソッドは引き続き特定の例外をキャッチできますか?
言い換えれば、私はこれを行うことができます:
try {
try {
//...
} catch (Exception e) {
//...
throw e;
}
} catch (SpecificException e) {
//...
}
Java では、一般的な例外がキャッチされて再スローされた場合、外部メソッドは引き続き特定の例外をキャッチできますか?
言い換えれば、私はこれを行うことができます:
try {
try {
//...
} catch (Exception e) {
//...
throw e;
}
} catch (SpecificException e) {
//...
}
例外を再スローしても、それについては何も変わりません (最初にスローされたオブジェクトと同じままです)。
Eclipse は内部キャッチの「throw e」を未処理の例外としてマークしますが、これを実行すると「正常に動作しました!」と出力されるため、例外をキャッチします。ありがとう@jtahlborn。残念ながら、これは不要な try/catch ブロックがどこかにまだ必要であることを意味します。
public class Tester {
public static void main(String[] args) {
try {
try {
throw new SpecificException("Test!");
} catch (Exception e) {
throw e;
}
} catch (SpecificException e) {
System.out.println("It worked!");
}
}
}