解释为什么失败的最好方法

Miy*_*der 2 c#

假设我在对象中有以下方法:

public class foo
{
    public bool DoSomethingAwesome()
    {
        bool bar = DidSomething() //suppose this sends an email;
        return bar;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果我想提供更多有关为什么DidSomething返回false的详细信息,那么最佳做法是将消息分配给foo,或者将Out参数分配给DoSomethingAwesome?

Mik*_*scu 5

我认为这在很大程度上取决于你正在使用的框架(即它是一种惯例).

  • 对于Win32 - 您有SetLastError,GetLastError.
  • 对于.NET,它通常会抛出异常,但可以根据您的情况进行更改.

可能一个外面的参数就可以了.

如果您决定使用异常路由,MSDN会有一个带有" 异常设计指南 "的条目.在" 框架设计指南 "一书中有一个很好的讨论- 第7章,我强烈推荐!

  • 如果它是全部.NET,那么抛出异常就是正确的方法. (2认同)