即使抛出所有可能的异常,方法(远程方法调用)是否应该返回true
指示操作成功执行的布尔值?
例子:
在我的 java 应用程序中有许多 CRUD 远程方法调用,我捕获所有可能的异常并向调用客户端抛出自定义异常。
我现在应该返回 void 还是布尔值,因为 Exceptions 已经隐式指示操作的成功或失败?
即使抛出所有可能的异常,方法(远程方法调用)是否应该返回true
指示操作成功执行的布尔值?
例子:
在我的 java 应用程序中有许多 CRUD 远程方法调用,我捕获所有可能的异常并向调用客户端抛出自定义异常。
我现在应该返回 void 还是布尔值,因为 Exceptions 已经隐式指示操作的成功或失败?
我建议返回无效。
如果你返回一个布尔值,调用代码必须猜测“哦,我应该检查布尔值还是检查异常?或者两者都做?”
Return ,在这种情况下void
不是 a 。boolean
例外是针对特殊情况。为什么要在两个不同的通道上指示操作的成功或失败之类的东西?DRY 原则告诉我们:
不要重复自己
我只会使用布尔值来表示更多信息,就像有时在集合上所做的那样,报告是否找到要删除的项目。
当对所有错误条件使用异常时,仅当方法具有要返回的实际有用数据时才返回值。
如果您没有要返回的有用信息,请使用 void。
我认为这是一个方便的问题。您已经抛出自定义异常这一事实有助于识别确切的错误(如果有)。
但是,有时,您可能会发现使用以下表达式很方便:
if(method()){
...
}
因此,返回布尔值可能很有用。
最后,两者(抛出异常并返回布尔值)不相互排斥