如何使用Intellij Idea的exception断点

这似乎是一个愚蠢的问题,但我无法弄清楚如何在Intellij Idea中调试exception。 谷歌搜索也没有帮助。

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

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

它工作得很好,我真的不知道你有什么样的问题与Launcher或ClassLoader。 可能是您已选择捕获Any exceptions ,这意味着它将在启动和类加载期间捕获所有类型的exception。 您必须对要捕获的exception做出具体选择,或者只是在捕获exception之前全部检查它们。

无论如何,我会告诉你如何设置一个非常简单的案例,你会发现它工作得非常好。

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

首先,您必须设置exception断点。

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

在此处输入图像描述

输入NullPointerException并按OK按钮。

在此处输入图像描述

确保未选中Any exception

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

在此处输入图像描述

最后,当exception被捕获时,您将看到所有您想要的东西,如调用堆栈监视窗口

在此处输入图像描述

我终于弄明白了。 在“ View Breakpoints窗口中,选中“ Any Exception但取消选中“ Caught exception ”标记。 启动程序和类加载器exception由JVM在内部捕获和处理。 这样,无需手动指定exception类型即可捕获任何用户exception。