2012-06-05 168 views
0

我是一個新手.NET MVC開發人員,我想知道,反正是有發展自己的錯誤處理程序,而無需使用著名的try/catch語句。我使用的XML文件來呈現的視分量,我想如能獲得一個錯誤信息有用的,我知道我違反了基於XML文件的約束asp.net的MVC錯誤處理

(例如,如果我添加另一個不具有「type」屬性的標籤,這可以在運行時爲我生成一條消息)。我希望我說清楚 由於事先

回答

0

事實上我更喜歡使用ActionFilter類覆蓋OnActionExecuting,OnActionExecuted,OnResultExecuting和OnResultExecuted方法。 ,我認爲XML屬性的控制不能從C調來完成,那麼我將使用if條件爲。 還是要謝謝你

1

在Global.asax可以捕捉到的異常,Global.asax中有事件的許多處理程序上的aplication喜歡的Application_Start,或者你需要的Application_Error

void Application_Error(){ 

    Exception exception = Server.GetLastError(); 
    //do what you need with the exception... 
} 
0

我相信處理異常的最佳位置是在的global.asax.cs。

protected void Application_Error(object sender, System.EventArgs e) 
{ 
    // custom logger 
    IErrorLogger errorLogger = new CustomLogger(); 

    // config of error handler 
    MvcExceptionHandlerConfig config = new MvcExceptionHandlerConfig("Error", "Error", 404, 500); 

    // init and handle 
    new MvcExceptionHandler.MvcExceptionHandler(this, errorLogger, config).Handle(); 
} 

演示,請訪問:https://github.com/mholec/mvcexceptionhandler

當然,這取決於你要處理什麼樣的異常。的Application_Error是處理錯誤400,404,5XX等,在另一方面偉大的地方,它不是身份驗證錯誤(你需要創建特殊的過濾器)使用。