错误 - 未处理的异常类型异常?

时间:2013-03-17 04:21:53

标签: java exception

我创建了一个抛出异常()的方法。它会导致错误 - 未处理的异常类型异常

public void temp(){
  throw new Exception();
}

但是,如果我用任何其他异常(如NullPointerException)替换Exception,我不会收到任何错误。为什么会这样?

2 个答案:

答案 0 :(得分:7)

这是“已检查”异常与“未经检查”异常之间的区别。任何扩展RuntimeException的东西,包括NullPointerException,都是“未选中”的,这意味着它们不需要通过try / catch显式处理,也不需要声明方法抛出它们。

检查异常是那些不扩展RuntimeException并且必须通过try / catch或声明方法抛出它来处理的异常。所以你的代码无法编译,因为你没有处理它。

答案 1 :(得分:1)

我遇到了这个错误的奇怪情况。也就是说,我的Eclipse在没有警告的情况下构建了代码,但是我的两位同事编译器都给出了这个错误。我们花了一段时间才弄明白,主要是因为使用RuntimeException有一个简单的补救措施。但最后,诀窍在于他们的Eclipse是为Java 1.6设置的,而我的Eclipse则调整为1.7。