2013-12-21 149 views
2

我对Java的抛出异常的问题,在类方法的定义:在类方法的Java抛出异常

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

你可以通过编写代码并编译来测试它。顺便想一想,在方法签名中声明throws子句意味着什么? –

回答

5

不,你不需要捕捉抛出的异常,只要你没有改变它,或者只是在发生异常时有选择地抛出异常。因此,这往往是完美的罚款:

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

虽然它往往好给你SomeException类的构造函数,需要一个字符串参数,然后将字符串传递给超级构造,让您的例外能够通过更多信息通过。

1

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

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