3

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

public void someMethod() throws someCheckedException{

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

}

我的问题是,在实现根本没有 throw 语句的情况下,是否可以让这个方法抛出“someCheckedException”。

在没有实现抛出异常的语句的情况下将抛出异常放在签名中是错误的吗?

4

3 回答 3

5

这完全没问题。方法签名中的 throw 语句用于以防万一方法抛出 throws 语句中声明的实际异常,并且通常将处理传递给不同的类您只需要记住在要使用此类方法时将其放入 try catch 语句中。

于 2013-05-02T22:34:49.873 回答
1

异常可能是由 someMethod 调用的方法之一引发的。

例如

    void method1() throws Exception {
        method2();
    }

    void method2() {
        throw new Exception();
    }
于 2013-05-02T22:35:47.403 回答
1

这是合法的。这在 RMI 中很常见。远程接口中的方法必须声明为抛出 RemoteException,但实现方法不需要声明它,因为它们实际上并不自己抛出它(除非它们自己进行 RMI 调用)。远程异常由 RMI 本身引发。然而,他们经常被声明这样做只是为了同意远程接口。这不是必需的。

于 2013-05-02T23:04:25.867 回答