我正在研究现有的代码库(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;
}
}
}
答案 0 :(得分:5)
Take a look at exception handling for web apis.您帖子中的类似乎提供与HttpResponseException类似的功能。
有更多具体的例外是有帮助的,因此你可以对它们做出独特的反应,而不是抛出一般的例外,因为那时你不知道捕捉它时出了什么问题的具体细节(你只知道发生了什么事情)错了,不得不猜测那些场景可能是什么)。
看看The best practices for exceptions和how to use specific exceptions in a catch block.我认为这句话描述了这个课程背后的想法
一般来说,捕获特定类型的异常而不是使用基本的catch语句是一种很好的编程习惯。
为什么开发人员实现了以下HttpResponseException中已存在的HTTPException类?
我可以想到以下场景。
与Web API中提供的功能相比,此类的当前实现不提供任何独特功能,您很可能会删除它并使用内置的异常。