2012-08-07 32 views
3

如果一个方法(远程方法调用)返回一个布尔值true值,表示即使所有可能的异常都被抛出,操作仍能成功执行?返回boolean如果没有抛出异常,则返回true,表示操作成功?

例子:

在我的Java应用程序有许多CRUD远程方法调用和我抓住所有可能的异常,并抛出一个自定义异常到调用客户端。

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

回答

4

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

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

不要重复自己

我只会用一个布尔值,表明进一步信息,像它有时做收藏,报告中的项目是否被发现去除。

5

我建议返回void。

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

1

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

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

0

我认为这是一个方便的问题。您已经抛出自定义异常的事实有助于确定是否存在确切的错误。

但是,有时候,你可能会发现它方便地使用类似的表达式:

if(method()){ 
    ... 
    } 

因此,返回一个布尔值可能会非常有用。

最后,两个(抛出一个异常并返回一个布尔值)不排除对方

相关问题