我有一个 java 项目,我想要一个源代码中可能引发 RuntimeException 的位置列表。是否有任何工具或 Eclipse 插件可以做到这一点?
使用 FindBugs 或 PMD 可能会找到 NullPointerExceptions,但我也需要找到其他人。
我有一个 java 项目,我想要一个源代码中可能引发 RuntimeException 的位置列表。是否有任何工具或 Eclipse 插件可以做到这一点?
使用 FindBugs 或 PMD 可能会找到 NullPointerExceptions,但我也需要找到其他人。
NullPointerException、ClassCastException 和 ArithmeticException 是一种特殊情况,因为它们不需要显式抛出。但是,其他所有内容都必须明确抛出。
搜索 NullPointerException 的可能原因是很有用的,因为它是一个常见的错误,但是像所有 RuntimeException 一样,最好避免而不是处理它们。搜索所有可能的原因可能会给您一个非常大的结果,这不太可能有用。(我自己已经完成了这个练习,经过大量的工作并没有取得太多的恕我直言)
您最好使用代码覆盖率并尝试边缘案例值,以确保您拥有良好的测试案例,这些案例可能会触发所有可能的异常。
我同意其他答案。由于我不知道您想要实现什么,因此我想对您的问题提供更直接的答案:
不幸的是,我知道没有工具可以做到这一点。对不起。根据它对您的重要性,您可以自己投资一些工作。
“手动”检查您的代码。
之后,JDK 仍然存在(很可能是您正在使用的一些库)。您可以从 Oracle 下载 JDK 源代码。您可以再次对新创建的异常实例的出现进行全文搜索。但是请注意,即使是这项繁琐的工作也不会为您提供所有可能的来源,因为那里缺少一些方法。
如果您只是检查自己的代码,则可以使用Checkstyle来完成。查看编码问题,非法抛出检查。
您可以指定任意数量的异常,默认情况下是:java.lang.Throwable, java.lang.Error, java.lang.RuntimeException
.
注意:这不会拾取上述异常的子类,它只会拾取类本身。它也不会检查您无权访问的源代码,因此例如不会检查运行时库。