【问题标题】:How to use Intellij Idea's exception breakpoints如何使用 Intellij Idea 的异常断点
【发布时间】:2013-05-10 03:33:21
【问题描述】:

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

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

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

【问题讨论】:

标签: java debugging exception intellij-idea


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    我有一个简单的例子,NullPointerException 会被抛出。

    首先你必须设置异常断点。

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

    输入 NullPointerException 并按下OK 按钮。

    确保Any exception 未被选中。

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

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

    【讨论】:

    • 是可怕的“+”让我绊倒了(它把我带到了这里)。至少 IntelliJ 对此是一致的;现在我只需要习惯它。
    • 谢谢你,你救了我的命!我希望我能给你投票 100000 次
    猜你喜欢
    • 2011-09-18
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多