Module  jdk.jdi
软件包  com.sun.jdi

Class ClassNotLoadedException

  • All Implemented Interfaces:
    Serializable


    public class ClassNotLoadedException
    extends 异常
    抛出,表示请求的类尚未通过适当的类加载器加载。

    由于许多VM执行的懒惰类链接,在相关类加载之前,可以在程序中看到字段或变量。 在加载类之前,所有可用的都是签名字符串。 如果尝试从JDI设置这样的字段或变量的值,则由于目标类未加载,所以无法进行适当的类型检查。 数组元素的元素类也是如此。

    在这种情况下,通过尝试类加载来解决这个问题是不可取的。 让调试器加载一个类而不是等待它加载正常的事件过程有两个问题。

    • 不能保证运行相应的类加载器不会在加载类时造成死锁。 类装载器可以由任意的Java编程语言代码组成,类加载方法通常是同步的。 当线程被暂停时,调试器完成的大部分工作都会发生。 如果另一个应用程序线程在同一个类加载器中挂起,那么死锁是非常可能的。
    • 更改正常加载类的顺序可能会掩盖或显示应用程序中的错误。 一个无意识的调试器应该努力保持正在调试的应用程序的行为不变。
    为了避免这些潜在的问题,抛出了这个异常。

    请注意,这个异常将被抛出,直到相关类对于封闭类的类加载器是可见的。 (也就是说,封装类的类加载器必须是有问题的类的启动类加载器。)有关详细信息,请参阅The Java™ Virtual Machine Specification

    从以下版本开始:
    1.3
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • ClassNotLoadedException

        public ClassNotLoadedException​(String className)
      • ClassNotLoadedException

        public ClassNotLoadedException​(String className,
                                       String message)
    • 方法详细信息

      • className

        public String className​()