【问题标题】:What's the difference between HttpResponseException and HttpExceptionHttpResponseException 和 HttpException 有什么区别
【发布时间】:2012-06-27 11:11:08
【问题描述】:

来自http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling

HttpResponseException

如果 Web API 控制器抛出异常会发生什么?默认, 大多数异常被翻译成带有状态码的 HTTP 响应 500,内部服务器错误。

HttpResponseException 类型是一种特殊情况。这个例外 返回您在构造函数中指定的任何 HTTP 状态代码 例外。

除了它没有。 Fiddler 显示返回 500。

但是,HttpException 似乎与那篇文章所说的一样。

是文档有误还是我遗漏了什么?

更新

在打字的时候,我有了一个想法。我尝试了两个控制器,一个 ApiController 和一个标准 MVC 控制器。

这两个异常根据引发它们的控制器的类型相互反向工作。

  • 使用 HttpResponseException 从 API 返回正确的 HTTP 代码 控制器。
  • 使用 HttpException 从 MVC 控制器。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    [将我的更新移至答案]

    在打字的时候,我有了一个想法。我尝试了两个控制器,一个 ApiController 和一个标准 MVC 控制器。

    这两个异常根据引发它们的控制器类型相互反向工作。

    • 使用 HttpResponseException 从 API 控制器返回正确的 HTTP 代码。
    • 使用 HttpException 从 MVC 控制器返回正确的 HTTP 代码。

    【讨论】:

    • Thx,这解释了为什么我的框架过去可以与 MVC 控制器完美配合(返回正确的异常),而不再使用 API 控制器(返回 500)——但它根本没有任何作用感觉:(
    猜你喜欢
    • 2012-05-26
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    • 2011-11-22
    • 2015-03-26
    相关资源
    最近更新 更多