【发布时间】:2016-05-31 14:12:43
【问题描述】:
我已经覆盖了父方法并在该方法上添加了throws 声明。当我添加 throws Exception 和 throws FileNotFoundExceprion 但使用 throws NullPointerException 时,它给了我错误。是什么原因?
class Vehicle {
public void disp() {
System.out.println("in Parent");
}
}
public class Bike extends Vehicle {
public void disp()throws NullPointerException {
System.out.println("in Child");
}
public static void main(String[] args) {
Vehicle v = new Bike();
v.disp();
}
}
【问题讨论】:
-
因为 NullPointerException 扩展了 RuntimeException 并且这不会破坏覆盖
-
当你重写一个没有声明它抛出它的方法时,你不能抛出一个检查异常。
-
不知道为什么你被否决了。对于不了解 Java 中已检查异常与未检查异常的微妙之处的人来说,这可能会非常令人困惑。而且我不知道在这种情况下我会弄清楚用谷歌搜索什么。
-
这也意味着您不需要输入
throws NullPointerException,即使您在方法中添加了一个。 RuntimeExceptions 用于不可恢复的错误,通常是未经检查的。 -
@sstan 可能是因为“它给了我一个错误”
标签: java exception nullpointerexception