繁体   English   中英

Java Throwing RuntimeException有什么好处

[英]Java what is the benefit of Throwing RuntimeException

声明(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(); 

}

它仍然充当文档,特别是如果您不使用通用的RuntimeException,而是更具体的东西,例如IllegalArgumentException或UnsupportedOperationExceptionIndexOutOfBoundsException,并且还添加了有关何时发生的JavaDoc。

但是,在您的示例代码片段中,它是毫无意义的。

该声明是使用此代码的开发人员的信号,它抛出RuntimeException。 但它闻起来不好。

您发布的PS代码将无法编译:

throw RuntimeException

这是不正确的投掷。

好处是通常调用者与异常无关。 它捕获它,并包装其他异常然后再次抛出。 或者,也可以使用throws关键字声明异常,并在出现异常时对该类型透明。

我要说的是,上述情况对于我们通常编写业务代码并在一个集中处理所有异常的地方的应用程序来说是典型的。 API不正确。 例如,如果您使用的是实现SSH的库,则您期望当出现问题时它会引发IOException (或更特殊的异常)。

如果引发自定义未检查的异常,它将变得更有意义,而不是捕获系统异常,而未检查的异常也不会强制捕获。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM