【问题标题】:Show all functions that throw exceptions显示所有抛出异常的函数
【发布时间】:2013-02-11 23:11:18
【问题描述】:

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

感谢您的帮助,

丹

【问题讨论】:

  • 查找编译器错误。每当您错过这些东西时,编译器都会帮助您。
  • 常用的“查找用法”工具可能会对您有所帮助。也就是说,这就是 Java 中的检查异常。

标签: java eclipse exception try-catch


【解决方案1】:

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

您可以阅读Unchecked Exceptions — The Controversy,这是一篇 Oracle 对未检查异常的看法的文章。

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

【讨论】:

  • 感谢您的帮助!我知道它不应该发生,只是想确保在它发生的情况下,我处理了它们。看起来我需要确保检查我使用的每一种方法!谢谢!
  • @dannyn382 不客气。现在的问题是:花时间处理每个异常更好还是花时间确保您的方法不会抛出这些异常更好? :)
  • 绝对同意你的看法。花时间确保我没有抛出异常确实更好。我想我只是认为它更像是“如果我不得不出于某种原因这样做,你会怎么做?”看到我只是在学习。再次感谢!
【解决方案2】:

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

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

【讨论】:

  • 你能给我一个例子吗?可以说: String s = "1" int i = Integer.parseInt(s);我怎么会发现它会抛出?我只是想确保我使用的所有方法都会在抛出异常时捕获异常,而且我不知道所有抛出的方法。
【解决方案3】:

如果您忘记捕获 checked 异常(扩展 Exception),则代码将无法编译。如果您忘记捕获 unchecked 异常(扩展 RuntimeException),这通常是更好的方法。 Read Up

【讨论】:

    【解决方案4】:

    如果您的程序在 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)异常的概念,因此必须处理已检查的异常,这会告知正确程序应该尝试/捕获/最终处理的异常。但未经检查的通知通常指示错误的情况,应避免良好做法和防御性编程,因此您不必处理它。

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多