Какая разница между 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.
Ответы
Ответ 1
[Перенос моего обновления в ответ]
Пока я печатал это, у меня была идея. Я пробовал как с двух контроллеров, ApiController и стандартного MVC-контроллера.
Два исключения работают в обратном порядке друг к другу в зависимости от типа контроллера, из которого они выбраны.
- Используйте HttpResponseException, чтобы вернуть правильный HTTP-код из контроллера API.
- Используйте HttpException для возврата правильного HTTP-кода с контроллера MVC.