3

即使抛出所有可能的异常,方法(远程方法调用)是否应该返回true指示操作成功执行的布尔值?

例子:

在我的 java 应用程序中有许多 CRUD 远程方法调用,我捕获所有可能的异常并向调用客户端抛出自定义异常。

我现在应该返回 void 还是布尔值,因为 Exceptions 已经隐式指示操作的成功或失败?

4

4 回答 4

5

我建议返回无效。

如果你返回一个布尔值,调用代码必须猜测“哦,我应该检查布尔值还是检查异常?或者两者都做?”

于 2012-08-07T20:56:55.163 回答
4

Return ,在这种情况下void不是 a 。boolean

例外是针对特殊情况。为什么要在两个不同的通道上指示操作的成功或失败之类的东西?DRY 原则告诉我们:

不要重复自己

我只会使用布尔值来表示更多信息,就像有时在集合上所做的那样,报告是否找到要删除的项目。

于 2012-08-07T20:57:22.037 回答
1

当对所有错误条件使用异常时,仅当方法具有要返回的实际有用数据时才返回值。

如果您没有要返回的有用信息,请使用 void。

于 2012-08-07T20:58:31.490 回答
0

我认为这是一个方便的问题。您已经抛出自定义异常这一事实有助于识别确切的错误(如果有)。

但是,有时,您可能会发现使用以下表达式很方便:

  if(method()){
     ... 
  }

因此,返回布尔值可能很有用。

最后,两者(抛出异常并返回布尔值)不相互排斥

于 2012-08-07T20:59:21.707 回答