自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹ASP.NET異常管理

開發(fā) 后端
本文介紹ASP.NET異常管理架構(gòu),在你所有的系統(tǒng)中應(yīng)該很好的封裝并抽象其記錄和報告等的細(xì)節(jié)。

在任何應(yīng)用系統(tǒng)開發(fā)中,ASP.NET異常管理對開發(fā)人員來說都是一個關(guān)鍵領(lǐng)域。作為一個開發(fā)人員,你應(yīng)該采用一種合適的、能讓你編寫健壯且高質(zhì)量代碼的異常管理策略。如果使用得當(dāng),異常管理將是一個很強(qiáng)大的概念而且使你的開發(fā)工作變的很容易。然而,一個不合適的異常處理將會使你的應(yīng)用系統(tǒng)性能降低。

在你鉆研這些之前,要先搞清楚ASP.NET異常管理是什么,這點很重要。一般來說異常就表示“打破系統(tǒng)預(yù)定的假設(shè)”?!爱惓!焙汀板e誤”是不一樣的,為了解釋清楚,我們來看兩個例子:

示例一

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

示例二

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

如何處理異常

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

忽略異常,讓它在調(diào)用棧里上升而被其它的catch塊捕獲。

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

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

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

探測異常:
◆執(zhí)行代碼清除;
◆內(nèi)部異常覆蓋;
◆內(nèi)部異常替換;
◆記錄并報告錯誤信息;
◆建立能被外部監(jiān)視的事件以幫助系統(tǒng)操作;

在開始你應(yīng)該建立一個一致的,健壯的ASP.NET異常管理架構(gòu),在你所有的系統(tǒng)中應(yīng)該很好的封裝并抽象其記錄和報告等的細(xì)節(jié)。

【編輯推薦】

  1. ASP.NET中的數(shù)據(jù)源控件
  2. 介紹ASP.NET的XML Web服務(wù)使用
  3. ASP.NET應(yīng)用程序的web.config文件
  4. 概述ASP.NET XML Web服務(wù)
  5. ASP.NET中實現(xiàn)HTTP請求
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-19 09:23:40

ASP.NET Rou

2009-07-22 16:05:34

ASP.NET AJA

2009-07-29 17:23:17

ASP.NET表單

2009-07-29 10:02:49

ASP.NET上傳

2009-07-29 09:14:36

ASP.NET網(wǎng)站

2009-07-21 10:40:36

ASP.NET Pro

2009-07-29 17:26:39

ASP.NET頁面

2009-07-23 14:17:41

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-20 16:12:21

ASP.NET Fra

2009-07-27 17:00:29

ASP.NET主機(jī)

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-28 17:15:17

ASP.NET權(quán)限管理

2009-07-29 10:35:51

ASP.NET緩存

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-05 10:36:08

開發(fā)ASP.NET

2009-07-20 10:53:59

ASP.NET MVC

2009-07-24 13:39:03

ASP.NET彈出窗口

2009-07-21 15:11:14

ASP.NET Rou

2009-02-06 14:11:36

ASP.NET.NET全局異常處理
點贊
收藏

51CTO技術(shù)棧公眾號