我正在研究一种方法抛出的异常。该方法如下所示:
public void someMethod() throws someCheckedException{
//doSomething statements
//but no statements actually throws 'someCheckedException'
}
我的问题是,在实现没有throw语句的情况下,可以使此方法抛出'someCheckedException'。
将throw异常放入签名而不实现抛出异常的语句是错误的吗?
答案 0 :(得分:4)
这完全没问题。方法签名中的throw语句存在以下情况:方法抛出throws语句中声明的实际异常,并且通常将处理传递给不同的类 您只需要记住在想要使用它时将此方法放入try catch语句中。
答案 1 :(得分:1)
异常可能是由someMethod调用的方法之一抛出的。
e.g。
void method1() throws Exception {
method2();
}
void method2() {
throw new Exception();
}
答案 2 :(得分:1)
这是合法的。这在RMI中非常常见。必须声明远程接口中的方法抛出RemoteException,但实现方法不需要声明它,因为它们实际上不会自己抛出它(除非它们自己进行RMI调用)。 RMI本身抛出了远程异常。然而,他们经常被声明这样做只是为了同意远程接口。没有必要。