3

昨晚我为这个问题脑筋急转弯。在确保我的 Eclipse 错误检查没有明显错误后,我开始调试我的程序。顺便说一句,我正在使用 Jre7。无论如何,每次我进入我的班级电话(让我们称之为“a”)时,调试器都会跳闸并说“找不到班级”。但是,如果我只是运行调试而不介入任何事情,也不例外。此外,如果我跨过类调用线,程序仍然会启动类及其所有成员,并且不会抛出任何异常。只有当我到达初始调用“classA a = new A();”时,它才会停止并引发异常。它也为我在 A 中创建的一个子类做到了这一点。我也无法进入那个类。

什么类型的事情会导致这种情况?

4

1 回答 1

3

这是正常行为。第一次实例化一个类时,内部会有一个ClassNotFoundException. 如果您此时检查堆栈跟踪,您会发现距实例化发生的位置大约有 7-8 层。按下“step out”键足够多次,你最终会回到你的实例化点。异常被类加载器捕获,类已加载,您已准备好继续。

调试器以这种方式运行是因为它必须能够调试类加载器问题。

于 2013-09-05T19:19:29.337 回答