如果问题标题可能会误导你,我很抱歉,但我找不到合适的词来解释。
如果您使用过.NET,您会知道Assert类会在必要时自动唤醒并附加调试器,然后在Assert命令失败的情况下让调试器(Visual Studio)暂停在Assert命令中。 / p>
鉴于我正在运行java程序并连接了调试器,那么如何在没有手动设置断点的情况下让调试器在某些条件下中断?
我期待这样的事情:
void doSomeThing(String x){
if (x==null) breakDebuggerNow();
}
答案 0 :(得分:1)
如果使用eclipse,您可以通过上下文菜单(右键单击断点)在断点视图中修改断点(默认情况下在调试透视图中)。 您可以设置命中计数或启用条件。另一种选择是触发异常,单击带有'J!'的图标set选择一个特定的例外。
答案 1 :(得分:1)
据我所知,Java中没有这样的功能。如果没有附加,JVM不知道调试器。对于.Net,这是Windows在这方面做了一些帮助。但是,assert
用于此类用途。它将引发不是Exception
的java.lang.AssertionError,因此不应该由通常的catch
es处理。如果您的调试器设置为处理未处理的异常(或者更确切地说是Throwable
s),它将捕获这种情况。