2

我正在开发一个 Java 程序,我想知道 Eclipse 中是否有一些工具可以指出所有引发异常的方法。我只是想确保我得到了所有这些。

谢谢您的帮助,

4

4 回答 4

1

必须捕获已检查的异常,以便 Eclipse 告诉您它们。另一方面,未经检查的异常(又名RuntimeException)是“不应该发生的”,大多数情况下是编程问题。因此,Java 不需要捕获它们,AFAIK Eclipse 不会显示任何提示来告诉您潜在的问题(它可能更好地提高可见性)。

您可以阅读Unchecked Exceptions — The Controversy,这篇文章 Oracle 给出了它对unchecked 异常的看法。

如果您想自己构建一些东西,请查看RuntimeExceptionDirect Known Subclasses,它将帮助您识别可以抛出而不会被捕获的异常。

于 2013-02-12T16:05:32.920 回答
0

如果您的程序在 main 方法(初始执行上下文)中捕获到异常,您将被告知是否抛出了一些异常但未处理。

public static void main(String[] args) {
    try {
       // .... anything you want to do
    } catch(Exception e) {
       e.printStackTrace(); // useful to visualize the stack trace and ping point others places to catch exceptions
    } catch(Throwable t) {
       // if you want to check for errors also, but generally there isn't much to do in this case
    }
}

附带说明一下,由于 Java 实现了已检查(异常)和未检查的 RuntimeException)异常的概念,因此必须处理已检查的异常,这会告知正确的程序应该尝试/捕获/最终处理的异常。但是未经检查的通知通常指示错误的情况,并且应该避免良好的做法和防御性编程,因此您不必处理它。

于 2013-02-11T23:22:27.273 回答
0

首先,搜索关键词。“throw”关键字将出现在检测错误条件或无法处理某些异常的代码中,而“throw”将是声明它们传递某些异常的方法。

Eclipse 可能无法找到所有抛出异常的方法,因为运行时异常不需要在“抛出”子句中声明,并且可能由库调用抛出,在这种情况下您也找不到“抛出”。

于 2013-02-11T23:17:51.327 回答
0

如果您忘记捕获已检查的异常(扩展Exception),则代码将无法编译。如果您忘记捕获未经检查的异常(扩展RuntimeException),那通常是更好的方法。阅读

于 2013-02-11T23:18:31.107 回答