0

Java では、一般的な例外がキャッチされて再スローされた場合、外部メソッドは引き続き特定の例外をキャッチできますか?

言い換えれば、私はこれを行うことができます:


try {
    try {
         //...
    } catch (Exception e) {
         //...
        throw e;
    }
} catch (SpecificException e) {
     //...
}
4

3 に答える 3

2

例外を再スローしても、それについては何も変わりません (最初にスローされたオブジェクトと同じままです)。

于 2012-01-07T03:54:21.010 に答える
0

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!");
        }
    }

}
于 2012-01-07T03:56:55.770 に答える