【问题标题】:Eclipse - Handling Java Exceptions like in NetBeansEclipse - 在 NetBeans 中处理 Java 异常
【发布时间】:2010-04-28 09:17:19
【问题描述】:

我最近从 NetBeans 迁移到 Eclipse,我非常想念一个很棒的功能 - 每当我使用引发某种异常的方法时,NetBeans 都会提醒我,我需要添加 try-catch 和 NetBeans 自动为我生成的异常类型。 Eclipse有类似的东西吗?

f.e. :Integer.parseInt(new String("foo"))

NetBeans 提醒我需要捕获 NumberFormatException。

Eclipse 根本没有提醒我

我正在使用面向 Web 开发人员的 Eclipse Java EE IDE,3.5 - Galileo

【问题讨论】:

    标签: java eclipse netbeans exception-handling


    【解决方案1】:

    确实如此。当然,在此之前你必须点击“保存”(CTRL + S)。

    当然,您不应该声明抛出异常的方法(例如throws Exception

    还要确保您选择了Project > Build automatically

    重要提示:您不声明或捕获 RuntimeException 或其子类 - 这些是未经检查的异常,对于它们,eclipse 正确地不提供任何选项。 NumberFormatExceptions 就是其中之一。

    尝试FileInputStream 的方法,例如,IOException - 一个已检查的异常 - 被抛出。

    (记录在案 - NetBeans 也不会为 Integer.parseInt(..) 做任何事情)

    【讨论】:

    • 我使用默认设置,但没有。我检查了编辑器设置,但找不到这种设置。
    • Integer.parseInt 抛出一个NumberFormatException,这不是手动声明的...?
    • @Finbarr :任何类型的异常,这只是一个例子
    • 我在回复@Bozho,他说“当然,你不应该声明抛出异常的方法(例如抛出异常)”。这似乎与您的问题无关。
    • 确实如此 - 如果他调用 Integer.parseInt() 的方法已声明抛出异常,则不会出现错误。
    【解决方案2】:

    Eclipse 依赖编译器错误来提示 try/catch 异常,而 NumberFormatException 扩展了 RuntimeException,如果它没有被 try/catch 块包围,则不会给出错误(以避免将所有内容放在块中 - 想想 NullPointerException,它也是一个 RuntimeException 和一切可能导致它)。
    来自 javadoc 的引用:“RuntimeException 是在 Java 虚拟机正常运行期间可以抛出的那些异常的超类。

    方法不需要在其 throws 子句中声明任何可能在方法执行期间抛出但未被捕获的 RuntimeException 子类。
    如果你尝试做类似的事情

    FileInputStream f = new FileInputStream("");
    

    抛出 FileNotFoundException 并且不扩展 RuntimeException 你会得到一个编译器错误,以及来自 eclipse 的使用 try/catch 块或声明封闭方法也抛出该异常的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      相关资源
      最近更新 更多