如果没有抛出异常表明操作成功,则返回布尔值true

时间:2012-08-07 20:52:44

标签: java exception-handling return throws

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

示例:

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

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

4 个答案:

答案 0 :(得分:5)

我建议归还无效。

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

答案 1 :(得分:4)

在这种情况下,请返回void,而不是boolean

例外情况适用于特殊情况。为什么要在两个不同的通道上指出操作的成功或失败? DRY原则告诉我们:

  

不要重复自己

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

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

  if(method()){
     ... 
  }

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

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