2

我有一个 java 项目,我想要一个源代码中可能引发 RuntimeException 的位置列表。是否有任何工具或 Eclipse 插件可以做到这一点?

使用 FindBugs 或 PMD 可能会找到 NullPointerExceptions,但我也需要找到其他人。

4

3 回答 3

2

NullPointerException、ClassCastException 和 ArithmeticException 是一种特殊情况,因为它们不需要显式抛出。但是,其他所有内容都必须明确抛出。

搜索 NullPointerException 的可能原因是很有用的,因为它是一个常见的错误,但是像所有 RuntimeException 一样,最好避免而不是处理它们。搜索所有可能的原因可能会给您一个非常大的结果,这不太可能有用。(我自己已经完成了这个练习,经过大量的工作并没有取得太多的恕我直言)

您最好使用代码覆盖率并尝试边缘案例值,以确保您拥有良好的测试案例,这些案例可能会触发所有可能的异常。

于 2011-11-22T09:28:09.583 回答
0

我同意其他答案。由于我不知道您想要实现什么,因此我想对您的问题提供更直接的答案:

不幸的是,我知道没有工具可以做到这一点。对不起。根据它对您的重要性,您可以自己投资一些工作。

“手动”检查您的代码。

之后,JDK 仍然存在(很可能是您正在使用的一些库)。您可以从 Oracle 下载 JDK 源代码。您可以再次对新创建的异常实例的出现进行全文搜索。但是请注意,即使是这项繁琐的工作也不会为您提供所有可能的来源,因为那里缺少一些方法。

于 2011-11-22T09:46:25.613 回答
0

如果您只是检查自己的代码,则可以使用Checkstyle来完成。查看编码问题,非法抛出检查。

您可以指定任意数量的异常,默认情况下是:java.lang.Throwable, java.lang.Error, java.lang.RuntimeException.

注意:这不会拾取上述异常的子类,它只会拾取类本身。它也不会检查您无权访问的源代码,因此例如不会检查运行时库。

于 2011-11-22T09:26:08.267 回答