0
public class dummy {
    public static void main(String[] args) { System.out.println("hello world"); }

    public void init() {
        //"dummy2" class defined in a different jar
        dummy2 d = new dummy2(); 
        try { d.run(); } 
        //"dummyexception" class defined in a different jar
        catch (dummyexception e) { e.printStackTrace(); }
        catch (Exception e) { e.printStackTrace(); }
    }

    public void init2() {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                //"dummy2" class defined in a different jar
                dummy2 d = new dummy2(); 
                try { d.run(); } 
                //"dummyexception" class defined in a different jar
                catch (dummyexception e) { e.printStackTrace(); } 
                catch (Exception e) { e.printStackTrace(); }        
            }
        };
    }
}

実行する前に、依存する jar をクラスパスから削除しました。メソッド内での使用ではなく、メソッド内で参照されているClassNotFoundExceptionクラスに対して'' を取得します。興味深いことに、メソッドで参照されているクラスの '' はありません。dummyexceptioninit()init2()ClassNotFoundExceptiondummy2init()

4

3 に答える 3

0

ここでの推測 - メソッドは辞書順で検証されており、各メソッドについて、ローカル変数の前に例外ハンドラーが検証されています。

于 2013-05-18T09:42:27.550 に答える