46

这似乎是一个愚蠢的问题,但我无法弄清楚如何在 Intellij Idea 中调试异常。谷歌搜索也无济于事。

我尝试创建异常断点。当 IDEA 中断时,我希望它给我一个调用堆栈,显示导致引发异常的方法的原因以及自动监视窗口,就像 Visual Studio 的调试工具一样。Launcher相反,它显示有关or的各种乱码消息ClassLoader,但在运行时没有实际异常的迹象。

那么 IDEA 的异常断点究竟应该如何使用呢?

4

2 回答 2

85

它工作得非常好,我真的不知道您在使用 Launcher 或 ClassLoader 时遇到了什么样的问题。可能是您选择了捕获Any exceptions,这意味着它将在启动和类加载期间捕获各种异常。您必须对要捕获的异常做出具体选择,或者只是遍历它们直到捕获到您的异常。

无论如何,我将向您展示我是如何设置一个非常简单的案例的,您会发现它运行得非常好。

我有一个简单的情况,NullPointerException将抛出 a 。

首先,您必须设置异常断点。

View Breakpoints...Ctrl+ Shift+进入窗口F8。然后按左上角的小+号。

在此处输入图像描述

输入 NullPointerException 并按下OK按钮。

在此处输入图像描述

确保Any exception未选中。

现在通过在 main 方法内右键单击运行程序并选择Debug 'SomeClass.main()'

在此处输入图像描述

最后观察异常何时被捕获,你将拥有所有你期望的东西,比如调用堆栈观察窗口

在此处输入图像描述

于 2013-05-16T07:12:19.087 回答
13

我终于自己想通了。在View BreakpointsWindows 中,选中Any Exception但取消选中Caught exception. 启动器和类加载器异常由 JVM 在内部捕获和处理。这样,任何用户异常都将被捕获,而无需手动指定异常类型。

于 2013-12-03T08:46:10.130 回答