如何查找可能抛出RuntimeException的Java项目中的所有位置?

时间:2011-11-22 09:16:44

标签: java runtimeexception

我有一个java项目,我想要一个源代码中的位置列表,可能会抛出RuntimeException。是否有任何工具或Eclipse插件可以执行此操作?

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

如果您只检查自己的代码,可以使用Checkstyle执行此操作。查看Coding Problems, Illegal Throws支票。

您可以指定任意数量的例外,默认情况下为:java.lang.Throwable, java.lang.Error, java.lang.RuntimeException

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

答案 2 :(得分:0)

我同意其他答案。由于我不知道你想要达到什么目标,我想更直接地回答你的问题:

不幸的是,我不知道这样做的工具。抱歉。根据对您的重要程度,您可以自己投入一些工作。

手动检查您的代码。

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