2015-10-13 158 views
1

我試圖模仿例外管理ASP MVC,拋出一個異常,捕獲它

這裏是我有:

public JsonResult callit() 
{ 
     throw new HttpException(400, "Bad Request"); 
} 

,然後我嘗試調用它像這樣:

$.ajax({ 
     type: 'GET', 
     url: '@Url.Action("callit", "rat", new { area = "test" })', 
     cache: 'false', 
     error: function (request, status, error) { 
      alert(request.responseText); 
     } 
}); 

但是,我的應用程序繼續停止時,拋出異常,我的錯誤不會被觸發,除非我停止程序。我該怎麼辦?

+0

你可以寫一個動作過濾器來處理異常。 http://stackoverflow.com/questions/4707755/asp-net-mvc-ajax-error-handling –

+1

使用'返回新的HttpStatusCodeResult(400,「壞請求」);' –

+0

@StephenMuecke我得到紅線說明我不能明確將類型的web異常轉換爲jsonresult –

回答

3

而不是拋出一個異常,返回HttpStatusCodeResult和改變你的方法ActionResult

public ActionResult callit() // or public HttpStatusCodeResult callit() 
{ 
    return new HttpStatusCodeResult(400, "Bad Request"); 
}