2012-06-27 44 views
12

Từ http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handlingsự khác biệt giữa HttpResponseException và HttpException

HttpResponseException

gì sẽ xảy ra nếu một bộ điều khiển Web API ném một ngoại lệ là gì? Theo mặc định, hầu hết các ngoại lệ được dịch sang phản hồi HTTP có mã trạng thái 500, Lỗi máy chủ nội bộ.

Loại HttpResponseException là trường hợp đặc biệt. Ngoại lệ này trả về bất kỳ mã trạng thái HTTP nào bạn chỉ định trong hàm tạo của ngoại lệ.

Ngoại trừ nó không. Fiddler cho tôi thấy 500 chiếc được trả lại.

Tuy nhiên, HttpException dường như làm điều mà bài viết nói.

Tài liệu có sai sót không hoặc tôi có thiếu gì đó không?

CẬP NHẬT

Trong khi gõ mà ra, tôi đã có một ý tưởng. Tôi đã thử cả hai từ hai bộ điều khiển, một ApiController và một bộ điều khiển MVC tiêu chuẩn.

Hai công việc ngoại lệ ngược lại tùy thuộc vào loại bộ điều khiển mà chúng được đưa ra.

  • Sử dụng HttpResponseException để trả lại mã HTTP thích hợp từ bộ điều khiển API .
  • Sử dụng HttpException để trả lại mã HTTP thích hợp từ bộ điều khiển MVC.

Trả lời

13

[Moved cập nhật của tôi đến một câu trả lời]

Trong khi gõ mà ra, tôi đã có một ý tưởng. Tôi đã thử cả hai từ hai bộ điều khiển, một ApiController và một bộ điều khiển MVC tiêu chuẩn.

Hai công việc ngoại lệ ngược lại tùy thuộc vào loại bộ điều khiển mà chúng được đưa ra.

  • Sử dụng HttpResponseException để trả về mã HTTP thích hợp từ bộ điều khiển API.
  • Sử dụng HttpException để trả lại mã HTTP thích hợp từ bộ điều khiển MVC.
+1

Bạn có thể chấp nhận câu trả lời của riêng – sidon

+1

Thx bạn, điều này giải thích tại sao khuôn khổ của tôi đã từng làm việc hoàn toàn tốt đẹp với bộ điều khiển MVC (trả lại ngoại lệ chính xác) và không có điều khiển API nữa (trở về 500) - nhưng nó chỉ doesn 't làm cho bất kỳ ý nghĩa :( – peter

Các vấn đề liên quan