先上代码try {
    Class.forName(taskclass).newInstance();
} catch (Exception e) {
    System.err.println("got it");
}以上是测试某个类是否能实例化,其中taskclass就是待测试的类.
在程序执行之前将taskclass删除,程序输出结果是got it.没有任何问题.然后修改taskclass,并在其中调用了另一个类TestClass.TestClass类在该project中是不存在的
执行之后报java.lang.NoClassDefFoundError
这个异常无法捕获,现在想捕获这个异常,该怎么做?

解决方案 »

  1.   

    这是一个error 不是一个exception
      

  2.   

    java.lang.Object
      java.lang.Throwable
          java.lang.Error
              java.lang.LinkageError
                  java.lang.NoClassDefFoundError继承关系。
      

  3.   

    java.lang.Object
      java.lang.Throwable
          java.lang.Error
              java.lang.LinkageError
                  java.lang.NoClassDefFoundError
    这可是Error啊!程序时无法处理这个Error的
      

  4.   


    那就没有别的办法了吗?
    我是在别的地方把TestClass编译好,然后将class文件复制在上面测试的project下的.
    在运行的时候是实实在在的报出Exception in thread "main" java.lang.NoClassDefFoundError:Exception in thread "main" java.lang.NoClassDefFoundError: com/foxboard/tool/InitProperties
    at com.foxboard.task.ps2.Psplostreport.<init>(Psplostreport.java:18)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.foxboard.timertask.task.TimerMissionManager.init(TimerMissionManager.java:187)
    at com.foxboard.timertask.task.TimerMissionManager.<init>(TimerMissionManager.java:61)
    at com.foxboard.timertask.task.TimerMissionManager.getInstance(TimerMissionManager.java:34)
    at com.foxboard.timertask.task.TimerMissionManager.main(TimerMissionManager.java:318)
    Caused by: java.lang.ClassNotFoundException: com.foxboard.tool.InitProperties
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 11 more
      

  5.   

    NoClassDefFoundError并不是Excpetion的子类
      

  6.   

    你是说怎么解决这个问题,还是怎么避免普遍的"NoClassDefFoundError"这一类的错误?
    如果是后者我告诉你只有经验才能解决
    如果是前者你确认你那个类存在吗?路径对吗?如果是用IDE,那么是在一个工程下吗?