程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在ASP.NET 2.0中實現異常管理

在ASP.NET 2.0中實現異常管理

編輯:關於ASP.NET

介紹

在任何應用系統開發中,異常管理對開發人員來說都是一個關鍵領域。作為 一個開發人員,你應該采用一種合適的、能讓你編寫健壯且高質量代碼的異常管 理策略。如果使用得當,異常管理將是一個很強大的概念而且使你的開發工作變 的很容易。然而,一個不合適的異常處理將會使你的應用系統性能降低。

在你鑽研這些之前,要先搞清楚異常管理是什麼,這點很重要。一般來說異 常就表示“打破系統預定的假設”。“異常”和“錯誤”是不一樣的,為了解釋 清楚,我們來看兩個例子:

示例一

我們假設你試圖向一個文件寫入數據,而你的應用程序也認為這個文件在正 確的路徑上。如果不在,就會拋出一個異常。而話說回來,如果你的職責是跟蹤 此文件,那麼代碼裡還有(找不到文件的)異常那將是一個不好的編碼習慣,這 種情況應該被校驗代碼處理(而不是異常)。

示例二

再讓我們假設一個一般的ASP.NET程序中,你正試圖更新數據庫中所有必需的 字段。你的應用程序認為此數據庫連接可用,假設實際上這個連接是不可用的… …拋出異常是一個解決方案。而我們又把話說回來,如果更新數據庫的必填字段 時出現有幾個值為空的字段,那拋出異常就沒有必要了,這些處理應該由校驗代 碼完成。

如何處理異常

作為一個開發人員,你應該感受到通過try, catch, finally塊來構建一個結 構化異常處理機制的優點。.NET框架提供了一大堆異常處理層次來處理不同種類 的異常。所有的異常都繼承自Exception(基類)。你可以通過繼承來實現自定 義錯誤處理以擴展異常處理機制。不幸的是,很多開發人員都誤用了這種架構能 力。一個隨時要記著的事是當一個異常發生在運行時時(這個架構)應該如何運 作?一般有以下三種情況:

忽略異常,讓它在調用棧裡上升而被其它的catch塊捕獲。

捕獲異常,同時為你的應用程序執行必要的動作,如果你不想再次在異常中 拋出異常的話。

捕獲異常,並用其它異常覆蓋它。這樣和你的應用程序有更密切的關系。異 常覆蓋是為了避免打破(架構中的)抽象層次。你可以通過你拋出的異常的 InnerException屬性指定原異常是什麼,這樣就可以把你現有的異常用一個新的 異常來覆蓋了(更與你系統有關的)。為了了解異常覆蓋,讓我們來看一個能引 起IOException異常的方法,你可以在應用級別使用LoadingException 或 FailtoLoadInfoException來覆蓋原有的IOException異常,這樣比把底層的 IOException給用戶看到要來的好些。

一個應用程序的異常處理框架應該有以下幾種(要求):

探測異常;

執行代碼清除;

內部異常覆蓋;

內部異常替換;

記錄並報告錯誤信息;

建立能被外部監視的事件以幫助系統操作;

在開始你應該建立一個一致的,健壯的異常管理架構,在你所有的系統中應 該很好的封裝並抽象其記錄和報告等的細節。

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