小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

調(diào)試-- ASP.NET中的異常處理

 悟靜 2012-02-16

ASP.NET中的異常處理

上面已經(jīng)排除了服務(wù)器中存在的一些故障,接下來要處理的就是程序當(dāng)中存在的一些錯(cuò)誤。通常把代碼中存在的錯(cuò)誤叫異常。本節(jié)主要介紹如何處理ASP.NET程序中的異常。

調(diào)試異常是開發(fā)功能完善的ASP.NET應(yīng)用程序的重要一步。若要調(diào)試未處理的ASP.NET異常,則需確保調(diào)試器能夠在發(fā)生這些異常時(shí)停止。ASP.NET運(yùn)行庫具有一個(gè)頂級(jí)異常處理程序,因此默認(rèn)情況下,調(diào)試器從不在發(fā)生未處理的異常時(shí)中斷。若要通知調(diào)試器在發(fā)生異常時(shí)中斷,必須轉(zhuǎn)到"異常"對(duì)話框,然后在該對(duì)話框內(nèi)選中發(fā)生異常名稱后的復(fù)選框,如圖14.11所示。

如果已啟用"僅我的代碼",則在系統(tǒng)代碼(如NET Framework方法)中發(fā)生異常時(shí),"發(fā)生以下異常時(shí)中斷:引發(fā)"選項(xiàng)不會(huì)導(dǎo)致調(diào)試器立即中斷。執(zhí)行將繼續(xù),直至調(diào)試器命中用戶的代碼,然后調(diào)試器中斷。這意味著不必在發(fā)生異常后逐句通過系統(tǒng)代碼。

 
圖14.11  "異常"對(duì)話框

"僅我的代碼"向用戶提供了另一個(gè)可能更有用的選項(xiàng):"發(fā)生以下異常時(shí)中斷:用戶未處理的"。如果為異常選擇此設(shè)置,則調(diào)試器會(huì)將用戶代碼中斷執(zhí)行,但是僅當(dāng)異常沒有被用戶代碼捕獲和處理時(shí)才這樣做。此設(shè)置實(shí)質(zhì)上使頂級(jí)ASP.NET異常處理程序不起作用,因?yàn)樵撎幚沓绦蛟诜怯脩舸a中。

啟用ASP.NET異常調(diào)試和"僅我的代碼"

如果要使用"用戶未處理的"設(shè)置,則必須啟用"僅我的代碼",方法如下:

(1)從"調(diào)試"菜單中選擇"異常"命令,打開"異常"對(duì)話框。

(2)在"公共語言運(yùn)行庫異常"行上選擇"引發(fā)"或"用戶未處理的"命令,如圖14.12所示。

 

 
圖14.12  設(shè)置"用戶未處理"的異常

ASP.NET異常處理的最佳方法

在可能引發(fā)異常的代碼周圍使用try…catch…finally塊。例如,如果應(yīng)用程序調(diào)用XML Web Services或直接調(diào)用SQL Server,則應(yīng)該將該代碼置于try…catch塊中,因?yàn)榇诉^程中可能會(huì)發(fā)生大量異常。

catch和finally一起使用的常見方式是:在try塊中獲取并使用資源,在catch塊中處理異常情況,并在finally塊中釋放資源。

下面的代碼演示捕捉異常,并作出相應(yīng)處理。

  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Web;  
  5. using System.Web.Security;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8. using System.Web.UI.WebControls.WebParts;  
  9. using System.Web.UI.HtmlControls;  
  10. using System.Data.SqlClient;  
  11. public partial class _Default : System.Web.UI.Page   
  12. {  
  13.     protected void Page_Load(object sender, EventArgs e)  
  14.     {  
  15.         if (!IsPostBack)  
  16.         {  
  17.             DataSet dsnew DataSet(); ;  
  18.             try  
  19.             {  
  20.                 //讀取XMLFile文件中的數(shù)據(jù),并將數(shù)據(jù)信息綁定到表格控件中  
  21.                 ds.ReadXml(Server.MapPath("~/XMLFile.xml"));  
  22.                 this.GridView1.DataSource = ds.Tables["XML"].DefaultView;  
  23.                 this.GridView1.DataBind();     
  24.             }  
  25.             catch( Exception  ex)  
  26.             {  
  27.                 //拋出異常  
  28.                 Response.Write(ex);   
  29.             }  
  30.             finally  
  31.             {  
  32.                 //釋放資源  
  33.                 ds.Dispose();  
  34.             }  
  35.         }  
  36.     }  

輸出結(jié)果如下:

  1. System.NullReferenceException: 未將對(duì)象引用
    設(shè)置到對(duì)象的實(shí)例。 在 _Default.Page_Load(Object 
    sender, EventArgs e) 位置 e:\Asp.net從基礎(chǔ)入門到
    項(xiàng)目實(shí)戰(zhàn)\Instances\14\01\Default.aspx.cs:行號(hào) 22 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多