当异常处理所有其他代码路径时,在方法错误做法结束时'返回true'吗?

ray*_*min 1 c# exception-handling

我正在尝试调用保存用户信息的Web服务.实质上,返回一个'completion'对象,其中包含服务调用的结果.我的代码可以压缩如下:

public bool SaveUserInformation(ArgsList args) {
    CompletionObject results = SaveService(args);
    if (results.Status == Failed)
        throw SomeException("onoez D:");

    return true;
}
Run Code Online (Sandbox Code Playgroud)

本质上,此方法返回一个布尔值,但该值永远不会为false.这对我来说有点奇怪,所以有更好的方法来解决这个问题吗?

谢谢!

Arm*_*yan 6

为什么不回来void?如果抛出异常,那么你就会知道它.如果没有抛出,则表示您的函数已成功完成(返回true).

try
{
   MyFunction();
   //here you know it has successfully completed
}
catch(Exception e)
{
   //...  
}
Run Code Online (Sandbox Code Playgroud)

但是,如果你要覆盖一个返回bool的虚函数,那么你当然总能返回true,因为你必须返回一些布尔值.想想看,你也可以回复假:)