ASP.NET 3.5完全自学手册.pdfVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7 章 异常处理和日志追踪 第 7 章 异常处理和日志追踪 在应用程序运行过程中,难免会遇到异常、错误。在开发过程中经常会被一些用户投拆软件出现 故障,或者是一些乱七八糟的错误提示。用户并不都是专家,看到这些莫名其妙的错误往往会认为是 应用程序不稳定因素所致,此时你会振振有词地告知用户:软件出现故障是难免的,微软够强大吧, Windows系统还不是会蓝屏出错。这样的解释并不是没有道理,任何软件都不可能十全十美,问题在于 开发人员如何处理错误,如何让应用程序能够无缝地从错误中恢复。 本章将讨论如何处理ASP.NET应用程序中的异常,如何追踪错误以及解决一些故障问题,讨论结 构化异常处理,日志记录以及当出现错误时,如何将用户页面重定向到一个用户友好的提示页面,本 章也将介绍如何使用页面追踪和查看ASP.NET页面的诊断信息。 7.1 ASP.NET应用程序异常处理 错误的产生很多时候是开发人员始料未及的,有的错误可能运行了很久才突然被触发。然而也有 一些错误是由于开发人员的疏漏所造成的,一个简单的例子是被0 除。假如在一个具有很多复杂公式的 页面上,要求用户输入有效的数据执行计算,由于 没有很好的验证机制,用户如果一不小心输入了一 个0作为被除数,ASP.NET将跳转到一个错误页面, 如图7.1所示。 当引发错误时,.NET将检查当前页面范围内是 否有任何错误处理器。假如错误产生于一个方法体 内,.NET将检查方法体内是否有一个错误处理器来 处理错误,如果没有任何的错误处理机制,页面处 理将被中断,一个错误页面将被显示出来。这个显 示的错误页面依赖于客户端的位置,如果是本地则 显示详细的错误信息,否则只显示一个通用的消息。 图7.1 被0 除错误 由于.NET会先检测本地的错误处理器,因此开 发人员可以设计良好的错误处理方式,比如显示一个友好的信息,或者是不显示错误信息而将这些错 误记录到事件日志中,本节将介绍如何使用异常处理机制来处理ASP.NET应用程序中的错误。 7.1.1 异常处理基础 大多数.NET语言都支持结构化异常处理,当一个错误引发时,.NET框架其实创建了一个异常对象 用于呈现问题。开发人员可以使用异常处理器来捕捉这个异常对象。假如不使用异常处理器的话,用 户代码将会被中止,ASP.NET将显示一个让用户迷惑的错误处理页面。 为了演示如何使用结构化的异常处理,本小节创建一个异常处理程序命名为CommError 。在 Default.aspx页面上添加一个Button控件,为该Button添加一个单击事件,代码如下所示。 书山有路勤为径 学海无涯苦作舟 145 ASP.NET 3.5完全自学手册 protected void Button1_Click(object sender, EventArgs e) { int x = 5; int y = 0; //故意被0除, 产生一个异常 int z = x / y; } 由于这段代码中没有添加任何的异常处理器,因此ASP.NET将中断页面的显示,并显示一个如图 7.1所示的页面。如果使用结构化的异常处理方式,代码将变成这样所示。 protected void Button1_Click(object sender, EventArgs e) { int x = 5; int y = 0; try { //故意被0除, 产生一个异常 int z = x / y; } catch (DivideByZeroException ex)

文档评论(0)

经管专家 + 关注
实名认证
文档贡献者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档