是否可以在eclipse中的assert上设置断点?

Axe*_*xel 3 java eclipse debugging assert breakpoints

我有一个包含数千个课程的大型项目。今天,我发现对于某些输入,在启用断言的情况下运行时会得出不同的结果。

由于断言本身不会引发AssertionError(我已经在该断点上出现了断点),因此这意味着代码中隐藏的某个地方是断言语句,它具有有害的副作用。问题是我不知道我的100多个断言中的哪个引起了问题。

由于assert不是Java中的方法而是关键字,因此我对如何设置断言(每次调用assert时都会命中)感到困惑。

我发现了可能的解决方法:

  • 逐一注释断言并运行程序以最终找到罪魁祸首。
  • 使用代码覆盖率工具(例如eclEmma)运行我的测试用例,以过滤掉一些断言语句。
  • 仅对某些程序包启用断言以缩小可能是原因的断言的数量。
  • 执行搜索和替换(使用正则表达式)以通过实用程序方法替换断言,在该方法中可以放置断点。

尽管如此,我想知道是否有人知道一种断言断言的方法,即使条件评估为真。

Fra*_*oid 5

转到运行->在搜索框中添加Java异常断点类型“ AssertionError”,然后选择java.lang.AssertionError并单击“确定”

现在,Eclipse将在断言时暂停