Java方法签名引发异常,实现没有

时间:2013-05-02 22:30:01

标签: java exception exception-handling method-signature

我正在研究一种方法抛出的异常。该方法如下所示:

public void someMethod() throws someCheckedException{

  //doSomething statements
  //but no statements actually throws 'someCheckedException'

}

我的问题是,在实现没有throw语句的情况下,可以使此方法抛出'someCheckedException'。

将throw异常放入签名而不实现抛出异常的语句是错误的吗?

3 个答案:

答案 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本身抛出了远程异常。然而,他们经常被声明这样做只是为了同意远程接口。没有必要。