EnterLib5.0 Hands-on異常處理
看企業庫方面的資料有一段時間了,從這一篇開始,打算將EnterLib5.0 Hands-on上的例子,結合我的實踐與理解介紹一個系列的關于企業庫基本的用法。EnterLib5.0 Hands-on上都是一些牛人做的一些DEMO,大家有興趣可以自己下載下來看看。有一些是我翻譯過來的,可能不太準確。我使用的是5.0的版本。VS的版本是2008 SP1。
從我看的第一篇異常處理說起。要是有些理解偏差還希望高手指出。
例子說明:檢查輸入的字符、如果帶有數字那么程序將拋出異常。
在本例中,需要添加應用的程序集有以下幾個:
1、Microsoft.Practices.EnterpriseLibrary.Common.dll
2、Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
3、Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll
4、Microsoft.Practices.EnterpriseLibrary.ServiceLocation.dll
盡管只有ExceptionHandling程序集是異常處理的API,其他的程序集也是需要在Bin\Debug目錄下的,他們為程序的異常處理提供了其他的功能。
檢查添加單詞的按鈕的事件里面的代碼如下:
1 try
2 {
3 // TODO: Handle exceptions
4 PuzzlerService.Dictionary.AddWord(txtWordToCheck.Text);
5 errorProvider1.SetError(txtWordToCheck, "");
6 }
7 catch (Exception ex)
8 {
9 bool exceptionResult = ExceptionPolicy.HandleException(ex, "UI Policy");
10 if (exceptionResult)
11 {
12 throw;
13 }
14 MessageBox.Show(string.Format("Failed to add word {0}, please contact support.", txtWordToCheck.Text));
15 }
注意:拋出異常的方式是非常重要的,而不是throw ex。如果你“throw ex”,堆棧異常將會被一個重新拋出異常點的堆棧跟蹤所替換,通常這不是希望看到的效果
下面介紹使用企業庫的配置工具對配置文件進行配置的過程。
1、右擊App.config文件。選擇"Edit Enterprise Library V5 Configuration"。如下圖:

2、給程序配置異常管理.如下圖:

3、為默認的策略點擊名稱欄坐標的箭頭,這樣配置工具會自動創建顯示策略的屬性。將屬性的名字改為:"UI Policy"。注意:這里的名字就是以上在try{} catch{}塊中的HandleException處理的名字參數。如下圖:

4、現在添加異常處理的策略。右擊標題欄項"All Exceptions",點擊"Add Handlers",在上下文菜單中點擊"Add Logging Exception Handler"。如下如:

5、這樣,就會在配置文件中自動為異常處理配置異常的日志處理配置節,用默認的配置為日志應用塊添加"Logging Settings"配置節。右擊點”Logging Exception Handler“標題欄左側的箭頭顯示處理的屬性。默認的:處理將會使用文本異常格式【Text Exception Formatter】,并記錄下日志信息到指定的目錄下。如下是【General】目錄。如下圖:

6、保存并關閉應用程序配置。
至此,異常的基本配置就完成了。接下來運行程序:
1、輸入一個帶數字的字符串,然后點擊”Add Word“按鈕。運行結果如下圖:

2、通過事件查看器查看日志。【計算機管理--事件查看器--Windows日志--應用程序】。如下圖:

點擊其中一條錯誤日志,查看異常的詳細信息。錯誤信息如下圖:

以上是企業庫的基本日常處理,當然它還包括安全等等方面的信息,待下節再介紹。
浙公網安備 33010602011771號