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