多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

aspnet教程

  • ASP.NET 教程
  • ASP.NET 簡介
  • ASP.NET Razor

    ASP.NET MVC

    ASP.NET 編程指南

    ASP.NET 異常處理

    閱讀 (2206)

    異常處理

    在 ASP.NET 中異常處理有三個方面:

    • Tracing - 在頁面級或者應(yīng)用程序級追蹤程序執(zhí)行。
    • Error handling - 在頁面級或者應(yīng)用程序級解決標(biāo)準錯誤或者自定義錯誤。
    • Debugging - 在程序中前進,設(shè)置斷點來分析代碼。

    在這一章中,我們將討論 tracing 和 handling。并且在這一章中,我們將涉及 debugging。

    為了理解概念,創(chuàng)建以下的樣本應(yīng)用程序。它有一個 label 控件,一個 dropdown 列表和一個鏈接。dropdown 列表加載了一個名言的 array 列表并且被選擇的引用將顯示在下面的標(biāo)簽中。它也擁有一個超鏈接,它指向一個不存在的鏈接。

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="errorhandling._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    
       <head runat="server">
          <title>
             Tracing, debugging and error handling
          </title>
       </head>
    
       <body>
          <form id="form1" runat="server">
    
             <div>
                <asp:Label ID="lblheading" runat="server" Text="Tracing, Debuggin  and Error Handling">
                </asp:Label>
    
                <br /> <br />
    
                <asp:DropDownList ID="ddlquotes" runat="server" AutoPostBack="True"  onselectedindexchanged="ddlquotes_SelectedIndexChanged">
                </asp:DropDownList>
    
                <br /> <br />
    
                <asp:Label ID="lblquotes" runat="server">
                </asp:Label>
    
                <br /> <br />
    
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="mylink.htm">Link to:</asp:HyperLink>
             </div>
    
          </form>
       </body>
    
    </html>

    文件后的代碼:

    public partial class _Default : System.Web.UI.Page
    {
       protected void Page_Load(object sender, EventArgs e)
       {
          if (!IsPostBack)
          {
             string[,] quotes = 
             {
                {"Imagination is more important than Knowledge.", "Albert Einsten"},
                {"Assume a virtue, if you have it not" "Shakespeare"},
                {"A man cannot be comfortable without his own approval", "Mark Twain"},
                {"Beware the young doctor and the old barber", "Benjamin Franklin"},
                {"Whatever begun in anger ends in shame", "Benjamin Franklin"}
             };
    
             for (int i=0; i<quotes.GetLength(0); i++)
                ddlquotes.Items.Add(new ListItem(quotes[i,0], quotes[i,1]));
          }
       }
    
       protected void ddlquotes_SelectedIndexChanged(object sender, EventArgs e)
       {
          if (ddlquotes.SelectedIndex != -1)
          {
             lblquotes.Text = String.Format("{0}, Quote: {1}", ddlquotes.SelectedItem.Text, ddlquotes.SelectedValue);
          }
       }
    }

    Tracing

    為了允許頁面級別的追蹤,你需要修改 Page 指令并且如下添加一個 Trace 屬性:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
       Inherits="errorhandling._Default" Trace ="true" %>

    現(xiàn)在當(dāng)你執(zhí)行文件時,你將得到追蹤信息:

    1

    它在首部提供了以下的信息:

    • Session ID
    • Status Code
    • Time of Request
    • Type of Request
    • Request and Response Encoding

    每次頁面被需要時,從服務(wù)器發(fā)出的 status 代碼顯示名字和錯誤時間,如果有的話。以下的表格顯示普通的 HTTP status 代碼:

    數(shù)字描述
    通知(100 - 199)
    100繼續(xù)
    101轉(zhuǎn)換協(xié)議
    成功(200 - 299)
    200OK
    204無內(nèi)容
    重定向(300 - 399)
    301永久移動
    305使用代理
    307暫時重定向
    來自客戶端的錯誤(400 - 499)
    400錯誤請求
    402支付需求
    404未找到
    408請求超時
    417期望失敗
    來自服務(wù)器的錯誤(500 - 599)
    500內(nèi)部服務(wù)器錯誤
    503服務(wù)不可用
    505HTTP 版本不支持

    在頂級信息下,有一個 Trace 日志,它提供了頁面生命周期的細節(jié)。它提供了頁面被初始化后的以秒為單位的運行時間。

    2

    下一個部分是控件樹,它以分層的形式列舉了頁面上所有的控件:

    3

    Session 和 Application 中的最后聲明了跟隨了所有服務(wù)器變量的 summaries,cookies 和 headers 集合。

    Trace 對象允許你給 trace 輸出添加自定義信息。它有兩個方法來完成:Write 方法和 Warn 方法。

    改變 Page_Load 事件句柄在檢測 Write 方法:

    protected void Page_Load(object sender, EventArgs e)
    {
       Trace.Write("Page Load");
    
       if (!IsPostBack)
       {
          Trace.Write("Not Post Back, Page Load");
          string[,] quotes = 
          .......................
       }
    }

    運行來觀察影響:

    4

    為了檢測 Warn 方法,讓我們在被選擇的 index changed 事件句柄中強制輸入一些錯誤的代碼:

    try
    {
       int a = 0;
       int b = 9 / a;
    }catch (Exception e)
    {
       Trace.Warn("UserAction", "processing 9/a", e);
    }

    Try-Catch 是一個 C# 編程結(jié)構(gòu)。try 塊持有任何可以或不可以產(chǎn)生錯誤的代碼,catch 塊捕獲了錯誤。當(dāng)程序運行時,它在 trace 日志中發(fā)送警告。

    5

    應(yīng)用程序?qū)哟蔚淖粉檻?yīng)用到網(wǎng)站中的所有的頁面。它通過將以下代碼放入 web.config 文件被實現(xiàn):

    <system.web>
       <trace enabled="true" />
    </system.web>

    錯誤解決

    盡管 ASP.NET 能檢測所有的運行時錯誤,仍然有一些微小的錯誤仍在那兒。通過追蹤觀察錯誤是為開發(fā)者準備的,而不是用戶。

    因此,為了攔截這樣情況的發(fā)生,你可以在應(yīng)用程序的 web.config 中添加錯誤解決設(shè)置。它是應(yīng)用程序范圍的錯誤解決。例如,你可以在 web.config 文件中添加以下的代碼:

    <configuration>
       <system.web>
    
          <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
             <error statusCode="403" redirect="NoAccess.htm"    />
             <error statusCode="404" redirect="FileNotFound.htm" />
          </customErrors>
    
       </system.web>
    <configuration>
    部分有可能的屬性: - **Mode:**它允許或者不允許自定義錯誤頁面。它有三個可能的值: - **On:**展示自定義頁面。 - **Off:**展示 ASP.NET 錯誤頁面(黃色頁面) - **remoteOnly:**它展示了自定義錯誤到客戶端,展示本地的 ASP.NET 錯誤。- **defaultRedirect:**它含有頁面的 URL 來展示以備不能解決的錯誤。 為了給不同錯誤類型放置不同的自定義錯誤頁面,子標(biāo)簽被使用,那里不同的錯誤頁面基于錯誤的 status 代碼被指定。 為了實現(xiàn)頁面級別的錯誤解決,Page 指令能被修改為: `````` 因為 ASP.NET Debugging 是它內(nèi)部一個重要的主題,因此我們將在下一章單獨地討論它。
    關(guān)閉
    程序員人生
    主站蜘蛛池模板: 毛片的网址| 精品成人资源在线观看 | 久久久日本精品一区二区三区 | 欧美日韩国产在线观看 | 国产综合欧美 | 国产成人精品久久二区二区 | 性欧美精品 | 久久国产综合精品欧美 | 最近中文免费高清字幕 | 亚洲精品高清在线观看 | 在线观看免费黄色网址 | 亚洲在线视频播放 | 亚洲欧洲eeea在线观看 | 在线视频 亚洲 | 激情综合婷婷丁香六月花 | 成在线人免费视频一区二区三区 | 亚洲欧美日韩色 | 中文字幕亚洲色图 | 一级做a爰片久久毛片 | 欧美日韩亚洲国产一区二区综合 | 国产精品人成 | 2022国产精品福利在线观看 | 天天拍夜夜添久久精品中文 | 伊人福利 | 国产综合久久久久久 | 日韩中文字幕一区二区不卡 | 在线观看免费xx高清视频 | 一级做a| 欧美一级高清在线观看 | 久操网在线 | 色综合久久中文 | 欧美亚洲国产精品久久蜜芽 | 最近的最新的中文字幕视频 | 欧美在线视频二区 | 国产一区二区三区在线观看视频 | 最近中文字幕无免费视频 | 国产亚洲欧美日韩综合综合二区 | 中文字幕在线视频第一页 | 性福利影院 | 日本美女一级黄色片 | 欧美自拍另类 |