1

我在三個模型中做MVC中的異常處理。什麼是在MVC(Base_Controller與CustomHandleErrorAttribute)異常處理的最佳方式

public class CustomHandleErrorAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     //logging   

    } 
} 

public class Base_Application : System.Web.HttpApplication 
{ 
    protected void Application_Error(object sender, EventArgs e) 
    { 

     //Logging 
    } 
} 

public class Base_Controller : Controller 
{ 
    protected override void OnException(ExceptionContext filterContext) 
    { 
     //Logging; 

    } 

} 

如果我把從代碼它是由CustomHandleErrorAttributeBase_Controller捕獲的樣本例外。

Base_Application我登錄異常同樣是由ELMAH記錄。

所以我想知道所有情況下的最佳方法。

回答

1

如果你有一個基本的控制器,我建議去使用這種方法

public class CustomHandleErrorAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     //logging   

    } 
} 

和裝飾基地控制器,具有自定義屬性

[CustomHandleError] 
public class Base_Controller : Controller 
{ 

} 

所以也可以重用的屬性,如果你添加將來不需要基本控制器的控制器。

也通過這個美好的article決定是否使用基本控制器或ActionFilter。

Application_Error事件可用於捕獲未被頁面級錯誤處理程序捕獲的錯誤。

+0

基地控制的任何原因?和什麼艾爾瑪Elmah vs Application_Error – Kartheek 2013-03-28 02:03:30

+0

閱讀文章,瞭解爲什麼基本控制器和檢查我的編輯有關Application_Error事件。 – ssilas777 2013-03-28 05:15:45

相關問題