到目前爲止,如果一個web api 2錯誤發生,我發現它,我會返回一個自定義對象,並填寫錯誤信息從catch。然而,這會使http.post()進入成功的方法而不是錯誤,然後我必須看看自己的布爾成功變量,如果真的很好,如果錯誤顯示錯誤。由於2種不同的原因,我必須在2個不同的地方尋找錯誤,這是很煩人的。從Web API 2有沒有辦法讓http.post()觸發錯誤回調,如果我在web api控制器中發現錯誤,則填寫錯誤消息?Web API 2返回一個錯誤,並使http.post捕獲它
[HttpPost]
public MyResponseObject UpdateData(RequestObject req)
{
MyResponseObject resp = new MyResponseObject();
resp.Success = true;
try{
// error happens here
}catch(Exception ex){
resp.Success = false;
resp.Msg = ex.Message;
}
return resp;
}
的http.post()調用仍然是成功的,但現在我要看看在成功回調我resp.Success,看它是否真的成功與否。確定API調用是可以做到的,但是它裏面出了點問題。我希望能夠顯示該消息並使呼叫失敗,以便使用異常消息調用http.post()錯誤回調。如果您想自定義返回您可以創建更多的細節HttpResponseMessage
響應
throw new HttpResponseException(HttpStatusCode.InternalServerError);
:
不要再追了異常應該引發這種行爲。或者你可以捕獲它,記錄有用的信息,並拋出一個帶有最終用戶友好信息的'HttpResponseException'。 – David
[如何在Web API中拋出異常?](https://stackoverflow.com/questions/14607844/how-to-throw-exception-in-web-api) – CodingYoshi