这似乎是一个愚蠢的问题,但我无法弄清楚如何在 Intellij Idea 中调试异常。谷歌搜索也无济于事。
我尝试创建异常断点。当 IDEA 中断时,我希望它给我一个调用堆栈,显示导致引发异常的方法的原因以及自动监视窗口,就像 Visual Studio 的调试工具一样。Launcher
相反,它显示有关or的各种乱码消息ClassLoader
,但在运行时没有实际异常的迹象。
那么 IDEA 的异常断点究竟应该如何使用呢?
这似乎是一个愚蠢的问题,但我无法弄清楚如何在 Intellij Idea 中调试异常。谷歌搜索也无济于事。
我尝试创建异常断点。当 IDEA 中断时,我希望它给我一个调用堆栈,显示导致引发异常的方法的原因以及自动监视窗口,就像 Visual Studio 的调试工具一样。Launcher
相反,它显示有关or的各种乱码消息ClassLoader
,但在运行时没有实际异常的迹象。
那么 IDEA 的异常断点究竟应该如何使用呢?
它工作得非常好,我真的不知道您在使用 Launcher 或 ClassLoader 时遇到了什么样的问题。可能是您选择了捕获Any exceptions
,这意味着它将在启动和类加载期间捕获各种异常。您必须对要捕获的异常做出具体选择,或者只是遍历它们直到捕获到您的异常。
无论如何,我将向您展示我是如何设置一个非常简单的案例的,您会发现它运行得非常好。
我有一个简单的情况,NullPointerException
将抛出 a 。
首先,您必须设置异常断点。
View Breakpoints...
按Ctrl+ Shift+进入窗口F8。然后按左上角的小+号。
输入 NullPointerException 并按下OK
按钮。
确保Any exception
未选中。
现在通过在 main 方法内右键单击运行程序并选择Debug 'SomeClass.main()'
最后观察异常何时被捕获,你将拥有所有你期望的东西,比如调用堆栈和观察窗口。
我终于自己想通了。在View Breakpoints
Windows 中,选中Any Exception
但取消选中Caught exception
. 启动器和类加载器异常由 JVM 在内部捕获和处理。这样,任何用户异常都将被捕获,而无需手动指定异常类型。