程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> EnterpriseLibrary.ExceptionHandling在asp.net mvc中的初步應用

EnterpriseLibrary.ExceptionHandling在asp.net mvc中的初步應用

編輯:關於ASP.NET

實現的功能很簡單,就是用企業庫的異常處理模塊和日志模塊,利用windows的系統日志,記錄web應 用的異常。

我的企業庫是4.1版

1.添加對Microsoft.Practices.EnterpriseLibrary.ExceptionHandling和 Microsoft.Practices.EnterpriseLibrary.Logging的引用

2.重寫Application_Error

protected void Application_Error(Object sender, EventArgs e)
         {
             try {
                 Exception objErr = Server.GetLastError ().GetBaseException();
                 Application["errorPage"] = Request.Url.ToString();
                 Application["errorMsg"] = objErr.Message;
                 Server.ClearError();
                 ExceptionPolicy.HandleException(objErr, "global  expcetion"); //第一個參數是異常,第二個可以理解為異常名或者異常類型
             }
             catch
             { }
         }

3.在配置文件中加入

<exceptionHandling>
     <exceptionPolicies>
       <add name="global expcetion"> //這就是你定義的異常名或者異常類型
         <exceptionTypes>
           <add type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral,  PublicKeyToken=b77a5c561934e089"
             postHandlingAction="NotifyRethrow" name="Exception">
             <exceptionHandlers>
               <add logCategory="General" eventId="100" severity="Error" title="Enterprise Library  Exception Handling"
                 formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatte r, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0,  Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                 priority="0" useDefaultLogger="false"  type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandle r, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=4.1.0.0,  Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                 name="Logging Handler" />
             </exceptionHandlers>
           </add>
         </exceptionTypes>
       </add>
     </exceptionPolicies>
   </exceptionHandling>

4.在程序中加入下列代碼測試異常

throw new Exception("Test");

5.注意:

需要將異常拋至全局處理的action,不要加異常過濾器IExceptionFilter,否則的話,異常無法傳遞 到Application_Error。

如果一定要使用IExceptionFilter,則將ExceptionPolicy.HandleException(objErr, "global expcetion"); 加入至過濾器中即可.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved