2012-03-15 8 views
1

クラスをロードしようとしませんでした。また、このクラスをロードしてプログラムを続行できない場合もあります。NoClassDefFoundErrorのTry/Catchでのクラス終了

protected void checkClass(){ 
     classChecked = false; 
     try { 
     ClassLoader cl = Thread.currentThread().getContextClassLoader(); 
     Class<?> compiledClass = cl.loadClass(sTestclass); // << EXCEPTIOn lINE 
      cRun = compiledClass;   
     classChecked = true;  
     } catch (Exception e) {   
      e.printStackTrace(); 
      System.err.println("- Testclass not found!"); 
      System.err.println("- Make sure you typed the package name\n and the Class name correctly!"); 
     }  
    } 

しかし、これで全体ではなくprogam出る:

Exception in thread "main" java.lang.NoClassDefFoundError: data/testcases/comman 
do/ctest (wrong name: data/testcases/commando/CTest) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 
1) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
     at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
     at cmd.TwCmd.checkClass(TwCmd.java:214) 
     at cmd.TwCmd.askForTestcase(TwCmd.java:107) 
     at cmd.TwCmd.anotherTestcase(TwCmd.java:146) 
     at cmd.TwCmd.executeInteractiveTw(TwCmd.java:85) 
     at cmd.TwCmd.runThrough(TwCmd.java:60) 
     at cmd.TwCmd.main(TwCmd.java:260) 

私はすでにTry/Catchとそれを囲むが、それでも全体のプログラムは、このエラーで終了しますか?

答えて

8

Exceptionではなく、Errorが表示されます。 NoClassDefFoundErrorをキャッチすれば、キャッチブロックでそれを処理して処理を続けることができます。

java.lang.NoClassDefFoundErrorjava.lang.Exceptionのサブクラスではない)

9

NoClassDefFoundErrorExceptionないが、それはError由来します。

すべてをキャッチする場合は、Throwableをキャッチしてみてください。

関連する問題