65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 应用程序中的异常处理

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.65/5 (15投票s)

2005年6月30日

4分钟阅读

viewsIcon

56806

ASP.NET 应用程序中处理异常的各种方法。

引言

异常处理的必要性

异常处理是软件架构师在 SDLC 周期中需要关注的核心领域之一。异常处理的重要性贯穿于 SDLC 的整个周期。在设计时,设计师应该能够预测特定组件中可能发生的错误类型。在开发过程中,开发人员需要了解特定操作引起的错误,并知道如何纠正它们。测试人员负责查找由于不同操作而可能发生的各种类型的错误。

因此,为了应用程序的正常运行,异常处理是必不可少的。由于以下原因,异常处理在软件中变得至关重要:

  • 频繁的错误会导致用户退出应用程序。
  • 严重错误会占用大量系统资源。
  • 如果处理不当,错误可能会影响现有数据。

下面给出了在 Microsoft ASP.NET 应用程序中处理异常的不同方法

A. 使用传统的 try-catch 块

我们可以编写应用程序并在 try catch 块中处理异常,这是 .NET 的语法。如果您想处理异常,则可以选择此方法。否则,您可以在 .aspx.cs 文件的事件处理程序中编写 try catch 块。原因是,如果您不在任何方法中处理异常,而是在其父方法中处理方法,则执行指针将移至父方法的错误处理块。由于事件处理程序在 Web 环境中是父方法,因此我们不必在子方法中处理错误。

优点

  1. 开发人员可以决定异常处理算法。
  2. 如果需要,每个方法都可以有一个 try catch 方法。
  3. 即使发生错误,应用程序也可以继续执行。

缺点

  1. 处理算法可能因开发人员而异。
  2. 捕获和抛出异常会增加系统开销。
  3. 无法实现应用程序级别的处理。

B. 使用 Application_Error 事件处理程序

我们可以在 Global.asax.cs 文件中使用 Application_Error 事件处理程序来处理应用程序级别的错误。如果发生应用程序错误,执行控制将进入此事件处理程序,我们可以在此处处理错误。典型方法是将页面重定向到某个自定义错误页面并在那里显示错误方法。您可以根据应用程序的要求进行处理和记录。

优点

  1. 可以重定向到其他页面。
  2. 应用程序级别的异常处理。

缺点

  1. 即使发生错误,应用程序也无法继续执行。它将重定向到提到的错误页面。
  2. 需要新的网页设计。

C. 在 Web.Config 文件中使用 CustomError 标记

如果将 Web.Config 文件中 custom error 标记的默认 redirect 属性设置为任何错误处理页面,则执行控制将重定向到指定的 URL。这是一个很好的方法,因为我们可以在自定义错误页面中处理错误。

优点

  1. 集中式页面显示。
  2. 能够利用 Web.Config 文件的优势。

缺点

  1. 无法进行服务器传输。
  2. 即使发生错误,应用程序也无法继续执行。它将重定向到提到的错误页面。
  3. 需要新的网页设计。

D. 使用 Enterprise Library Application Blocks

ELAB 提供了一些编译为 DLL 的代码块,可以解决开发人员在编写代码时遇到的常见问题。这使得开发人员的工作更加轻松,从而可以大大节省生产时间。它们旨在封装 Microsoft 推荐的 .NET 应用程序最佳实践。它们可以快速轻松地集成到您的 .NET 应用程序中。

ELAB 的一些例子包括

  1. 数据访问应用程序块。
  2. 异常处理应用程序块。
  3. 日志记录和仪表应用程序块。
  4. 缓存应用程序块。
  5. 配置应用程序块。
  6. 安全应用程序块。
  7. 加密应用程序块。

让我们以异常处理应用程序块为例进行研究。

优点

  1. 开发人员可以减少处理异常的代码行数。
  2. 无需第三方组件,包括许可和类似的东西。
  3. 提供出色的自定义选项。
  4. 可以与日志记录和电子邮件功能集成。
  5. 易于使用(将引用添加到您的应用程序并开始使用 EHAP)。
  6. 可以正确分配功能所有权/类所有权。

缺点

  1. 自定义需要开发人员的努力。
  2. 所有开发人员都应充分理解算法。

我们可以将 ELAB 与其他方法一起使用。例如,您可以重定向到一个错误页面,然后在那里使用 ELAB。一个人可以处理这个错误模块,并在成功完成后由其他人实现。

有用链接

下面提供了一些解释 Enterprise Library Application Blocks 的有用链接

© . All rights reserved.