在 Intellij 中,如何在断点处引发异常?

2022-09-01 12:52:54

我看到很多关于如何让Intellij打破异常的问题。我正在尝试做一些不同的事情:我想在断点处引发一个异常,这样我就可以看到如果该代码发生异常会发生什么。

我已经想好了办法来强迫这个。例如,如果我有一个名为 的变量,我可以命中断点并添加一个显示 .这最终将触发 NullPointerException。willBeUsedwillBeUsed = null

但是我处于一种我想抛出一个来看看会发生什么的情况。没有办法欺骗我的代码这样做。当我添加一个手表时,它告诉我它给了我一个错误,说“意外的令牌”。IOExceptionthrow new IOException()

作为解决方法,我可以修改代码以引发异常并重新部署。但是我想知道是否有一种方法可以在不修改源代码的情况下在调试器中执行此操作。


答案 1

您可以右键单击堆栈跟踪并选择“抛出异常”

enter image description here

(自2018.1版本起。请参阅 JetBrains 问题:IDEA-148408)


答案 2

如何将语句放在块中,并且仅更改条件,例如:throwif

boolean shouldThrowException = false;
// ....
if ( shouldThrowException ) //place breakpoint here
{
    throw new IOException();
}

命中断点时,将 的值更改为 true。shouldThrowException


推荐