我对类方法定义中的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
时,正确方式抛出异常是什么。
答案 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
派生的任何异常类。)
因此,您不需要在函数中捕获该特定异常,但是您需要捕获所有其他异常。