【问题标题】:How to make Eclipse with to report error when declared exception is not caught?当声明的异常没有被捕获时,如何让 Eclipse 报告错误?
【发布时间】:2014-01-10 07:50:18
【问题描述】:

当声明的异常没有被捕获时,如何让Eclipse报错?
例如,如果我将方法声明为

public int someMethod(int a, int b) throws IllegalArgumentException {
    ...
}

然后在其他方法中使用它,例如

public int anotherMethod() {
    ...
    return someMethod(a, b);
}

我希望编译器在另一个方法中报告错误,直到我捕获 IllegalArgumentException 或将另一个方法声明为

public int anotherMethod() throws IllegalArgumentException {}

【问题讨论】:

  • 所以你基本上希望你的编译器插入一个 try/catch 来打印 catch 块中的堆栈跟踪,直到你手动声明它?这在具有默认 JDK 的普通 Java 中是不可能的。可能有一个框架或替代编译器,但我不这么认为。
  • 我的 eclipse 版本报告了这个错误,但我从来没有改变过一些偏好。
  • Eclipse 确实报告未捕获的检查异常。你到底想做什么?
  • @thkala 可能是 android 插件的问题,那么...仍然没有报告错误
  • @kai 看我上面的评论

标签: java android eclipse exception exception-handling


【解决方案1】:

Eclipse 实际上应该报告一个错误,因为您在 anotherMethod() 中有一个未捕获的 IOException:

Unhandled exception type IOException

只有未经检查的异常(例如 RuntimeException)会导致您描述的行为,但 IOException 是经过检查的异常。

也许你已经关闭了 Eclipse 中的错误报告,但我对此表示怀疑。您可以在 Preferences / General / Editors / Text Editors / Annotations / Errors 中进行检查。确保选中所有复选框。

注意:我的回答是指在编辑之前提出的原始问题,其中提到了 IOException 而不是 IllegalArgumentException。

【讨论】:

  • 是的,我仔细检查了,那是未报告的 RuntimeException...所以我无法更改它,因为它是 runtime
  • @Natalia: RuntimeException 是一个未经检查的异常,很像Error throwables。你可以捕捉它们,但如果你不捕捉它们,编译器不会抱怨,因为它们通常会在调用者不希望甚至无法处理的情况下抛出......
  • @Natalia 请参阅stackoverflow.com/questions/5963319/… 了解更多详情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
  • 1970-01-01
  • 2014-10-24
相关资源
最近更新 更多