Java方法抛出异常

时间:2013-12-21 14:16:51

标签: java exception-handling

我对类方法定义中的Java throw异常有疑问:

public void someMethod () throws SomeException {
 try{
   ...
 }catch (SomeException e ){
   ....
 }
}

当我们在方法声明中声明throw SomeException时,我们仍然需要try/catch在身体中,或者我们可以像这样使用throw new SomeException

public void someMethod () throws SomeException {
  // do something
  throw new SomeException() ;
}

在方法声明中有throw Exception时,正确方式抛出异常是什么。

2 个答案:

答案 0 :(得分:5)

不,只要您没有更改它,或者仅在发生异常时的某些情况下有选择地抛出异常,您就不需要捕获抛出的异常。所以这通常很好:

public void someMethod () throws SomeException {
  // do something
  throw new SomeException() ;
}

虽然为SomeException类提供一个带有String参数的构造函数,然后将该String传递给超级构造函数以允许您的异常能够传递更多信息,这通常很好。

答案 1 :(得分:1)

您的原型public void someMethod () throws SomeException强制someMethod只会抛出SomeException类型的异常。 (或者从SomeException派生的任何异常类。)

因此,您不需要在函数中捕获该特定异常,但是您需要捕获所有其他异常。