26

在 Eclipse 中,如果我在没有断点的调试模式下运行 Java 程序,并且如果 JVM 遇到 NullPointerException,Eclipse 会高亮显示有问题的代码行,并显示局部变量等。执行被暂停。我可以使用“显示”选项卡评估代码,等等。

但是,如果我在调试模式下运行 JUnit 测试,并且 jvm 遇到 NullPointerException,则 jvm 不会暂停,并且我没有机会看到局部变量。

是否可以运行 JUnit 测试,以便 JVM 在我遇到 NullPointerException 时自动暂停,而不使用断点?

编辑:使用 JUnit 4 和 Juno

4

4 回答 4

6

当抛出的异常未被捕获并将您从 main() 中弹出时,Eclipse 将停止。但是,当您使用 JUnit 框架运行时,所有异常都会被 JUnit 捕获,因此 Eclipse 不会停止。

想到了两个解决方案:

  • NullPointerException设置异常断点以在抛出时停止
  • 使用 JUnit 报告的异常堆栈跟踪并在引发异常的行上设置断点(这是我更喜欢的那个)。
于 2017-01-22T23:56:41.410 回答
5
  1. 打开您要运行的 Junit 测试用例或 Junit 测试套件。
  2. 放置你的断点。
  3. 右键单击文件,然后单击调试为 > Junit 测试。
于 2019-07-05T06:34:01.950 回答
2
  1. 双击设置断点

  2. 在 Eclipse 中使用 Debug 模式运行

将鼠标悬停在该行代码上,然后单击step overf6

于 2016-10-22T16:31:53.613 回答
0

您可以在 JUnit 选项卡上看到它,如果您双击有问题的行,您将转到发生空指针异常的位置。

java.lang.NullPointerException        <--First line of the error
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click

执行此操作后,您将被重定向到错误行。

于 2015-04-28T17:38:48.477 回答