这可能是继承的意图

Gau*_*tam 3 .net c#

我正在研究现有的代码库(Asp.net web api).在那里我遇到了下面的课程,它让我想到在哪种情况下这将是有用的?到目前为止,我已经看到了代码库,它还没有在任何地方使用过.因为它继承了Exception Class,所以我认为可以使用通用的Exception类来代替创建这个新的类.有人可以阐明这一点,即我们何时需要这样的定制课程以及它如何有用?

**定义了这个的开发人员已经离开了.

public class HttpResponseException : Exception
{
    private string _message;

    public HttpResponseException() : base() { }
    public HttpResponseException(string message) : base(message)
    {
        this._message = message;
    }

    public override string Message
    {
        get
        {
            return this._message;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Fra*_*gio 5

看一下web apis的异常处理.您帖子中的类似乎提供与HttpResponseException类似的功能.

有更多特定的异常是有帮助的,所以你可以对它们做出独特的反应,而不是抛出一般的异常,因为那时你不知道捕获它时出了什么问题的具体细节(你只知道出了问题并且必须猜测那些场景可能是什么).

查看异常的最佳实践以及如何在catch块中使用特定异常.我认为这个陈述描述了这个课程背后的思想

通常,捕获特定类型的异常而不是使用基本的catch语句是一种很好的编程习惯.

为什么开发人员实现了以下HttpResponseException中已存在的HTTPException类?

我可以想到以下场景.

  • 根据我之前提供的文档,开发人员可能没有已知的HttpResponseException.
  • 也许这个项目是在.net的旧版本中,当时不存在http异常.
  • 最可能的场景IMOP - 开发人员希望提供一些HTTP异常独有的功能,这是他们实现它的占位符,尽管他们从来没有完成该实现.

与Web API中提供的功能相比,此类的当前实现不提供任何独特功能,您很可能将其删除并使用内置的异常.