回答
http://www.codeguru.com/csharp/.net/net_asp/mvc/handling-errors-in-asp.net-mvc-applications.htm
註冊這表明全球的錯誤處理方式不同。通常設置全局異常處理過濾器。
GlobalFilters.Filters.Add(new SpecialHandleErrorAttributeCreatedByYou());
您將從HandleErrorAttribute派生一個新的屬性,並將您的邏輯放在那裏,覆蓋OnException方法。
public override void OnException(ExceptionContext filterContext)
但是,這不會顯示由其他代碼處理的異常。這是關鍵,他們被處理,所以他們不會繼續泡沫堆棧。你將不得不把代碼放在每個catch塊中去做你想做的事情。
全球錯誤處理:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Server.ClearError();
Response.Redirect("/Home/Error");
}
}
或覆蓋onException的方法:
public class HomeController : Controller
{
protected override void OnException(ExceptionContext filterContext)
{
Exception ex = filterContext.Exception;
filterContext.ExceptionHandled = true;
var model = new HandleErrorInfo(filterContext.Exception, "Controller","Action");
filterContext.Result = new ViewResult()
{
ViewName = "Error",
ViewData = new ViewDataDictionary(model)
};
}
}
它可以處理那些由用戶代碼處理的異常嗎? –
如果你處理了一個異常,你不會再次拋出它,它不能再處理它。處理的異常一次不能再進行處理。 –
是的,它是可能的,你可以重寫。 HandleErrorAttribute 和全球
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(YourNewHandler());
...
}
它可以處理那些由用戶代碼處理的異常嗎? –
- 1. ASP.NET MVC 4 - 異常處理不工作
- 2. ASP.NET 5中的全局異常處理
- 3. 異常處理ASP.NET MVC
- 4. ASP.NET MVC異常處理
- 5. 異常不被ASP.NET MVC中的ErrorHanldeAttribute或OnException方法處理5
- 6. Spring 4 mvc全局異常處理
- 7. ASP.NET MVC未處理的圖像異常?
- 8. 處理異常4
- 9. ASP.NET MVC異常與AJAX/JSON處理
- 10. 異常處理ASP.NET MVC Web API
- 11. ASP.NET MVC jQuery Ajax錯誤/異常處理
- 12. 如何處理ASP.NET MVC ActionResult異常?
- 13. ASP.NET MVC 5錯誤處理
- 14. 在asp.net中處理異常
- 15. ASP中的skelJs中的未處理的異常MVC 4
- 16. ASP.Net中的密碼處理MVC 4
- 17. 如何處理asp.net中的異常?
- 18. asp.net未處理的異常
- 19. 在ASP.NET MVC 4應用程序中安裝Elmah的異常處理
- 20. 如何正常處理ASP.NET MVC 4中的數據庫連接?
- 21. 新的ASP.NET MVC 4項目異常
- 22. 處理ASP.NET MVC中的異步請求
- 23. ASP.Net MVC 5 ActionResult拋出404異常
- 24. 是否正確的方式在ASP.NET MVC中的異常處理
- 25. ASP.NET異常處理工具
- 26. MVC 4的異常處理程序屬性來電訂購
- 27. 如何在ASP.NET MVC中記錄未處理的異常?
- 28. 如何處理服務器無響應asp.net mvc中的異常?
- 29. 如何處理Asp.Net MVC中的一般異常?
- 30. ASP.NET MVC和Ajax中的異常處理 - [HandleException]篩選器
這意味着沒有機會追蹤所有由用戶代碼處理的異常? –
在非常先進的東西之外沒有任何機會,比如插入AppDomain並在用戶代碼處理它之前處理異常,就像VS調試器能夠做到的那樣。你也許可以用Fody IL Weaving做類似的事情(無論你在哪裏看到一個catch塊都可以編織)。 https://github.com/Fody/Fody – Cleverguy25