声明(Unchecked Exception)的好处是什么从方法签名b / c抛出异常它不会强制调用者保留在try catch块中。
public void testRuntimeEx()throws RuntimeException{
if(1==1){throw new RuntimeException()}
}
//Caller method
public void testCaller(){
// not necessery to handle even caller does not known which RuntimeException might be throws then what is the benefit throws clause with method signature
testRuntimeEx();
}
答案 0 :(得分:3)
它仍然可以作为文档,特别是如果你不使用通用的RuntimeException,但是更具体的东西,比如IllegalArgumentException或UnsupportedOperationException或IndexOutOfBoundsException,并且还会添加一些JavaDoc来确定何时会发生。< / p>
在您的示例代码段中,它毫无意义。
答案 1 :(得分:2)
这个声明是使用此代码的开发人员发出的信号,它会抛出RuntimeException。 但它闻起来并不好。
P.S。您发布的代码无法编译:
throw RuntimeException
投掷不正确。
答案 2 :(得分:1)
好处是通常调用者与异常没有任何关系。它捕获它,包裹其他异常并再次抛出。或者,或者,使用throws
关键字声明异常,如果异常,则对此类型变为透明。
我会说所描述的情况对于我们通常编写业务代码并且有一个处理所有异常的集中位置的应用程序来说是典型的。它不适用于API。例如,如果您正在使用实现SSH的库,那么当出现问题时,您希望它抛出IOException
(甚至更特殊的异常)。
答案 3 :(得分:0)
如果你抛出自定义未经检查的异常,它就会变得更有意义,而不是捕获系统异常,并且未经检查的异常也不会强行捕获。