Подтвердить что ты не робот

Какая разница между HttpResponseException и HttpException

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

HttpResponseException

Что произойдет, если контроллер веб-API выдаст исключение? По умолчанию, большинство исключений транслируются в ответ HTTP с кодом состояния 500, Внутренняя ошибка сервера.

Тип HttpResponseException - особый случай. Это исключение возвращает любой код состояния HTTP, который вы указываете в конструкторе исключение.

За исключением того, что не. Скрипач показывает, что возвращается 500.

Однако HttpException, похоже, делает то, что говорит эта статья.

Является ли документация неправильной или я что-то не хватает?

UPDATE

Пока я печатал это, у меня была идея. Я пробовал как с двух контроллеров, ApiController и стандартного MVC-контроллера.

Два исключения работают в обратном порядке друг к другу в зависимости от типа контроллера, из которого они выбраны.

  • Используйте HttpResponseException, чтобы вернуть правильный HTTP-код из API контроллер.
  • Используйте HttpException, чтобы вернуть правильный HTTP-код из MVC.
4b9b3361

Ответ 1

[Перенос моего обновления в ответ]

Пока я печатал это, у меня была идея. Я пробовал как с двух контроллеров, ApiController и стандартного MVC-контроллера.

Два исключения работают в обратном порядке друг к другу в зависимости от типа контроллера, из которого они выбраны.

  • Используйте HttpResponseException, чтобы вернуть правильный HTTP-код из контроллера API.
  • Используйте HttpException для возврата правильного HTTP-кода с контроллера MVC.