代码:处理应用程序级别错误 (Visual Basic)

By | 04月02日
Advertisement

此示例显示如何在 Global.asax 文件中创建错误处理程序,该程序将捕捉应用程序中所有未处理的 ASP.NET 错误,即用 Try...Catch 块或在页级别错误处理程序中没有捕捉到的错误。在此示例中,处理程序将控件传输到一般错误页 (Errors.aspx) 中,该页解释错误并显示适当的消息。

示例

' Handler in Global.asax file  Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)      Server.Transfer("Errors.aspx")  End Sub    ' Handler in Errors.aspx file  Private Sub Page_Load(ByVal sender As System.Object, _          ByVal e As System.EventArgs) Handles MyBase.Load      Dim errMessage As String = ""      Dim appException As System.Exception = Server.GetLastError()      If (TypeOf (appException) Is HttpException) Then          Dim checkException As HttpException = _              CType(appException, HttpException)          Select Case checkException.GetHttpCode          Case 403              errMessage &= "You are not allowed to view that page."          Case 404              errMessage &= "The page you have requested can't be found."          Case 408              errMessage &= "The request has timed out."          Case 500              errMessage &= "The server can't fulfill your request."          Case 503              errMessage &= "The server is experiencing a heavy load."          Case Else              errMessage &= "The server has experienced an error."          End Select      Else          errMessage &= "The following error occurred<BR>" & _                appException.ToString      End If      Label1.Text = errMessage & "<BR>Please contact the server" & _           "administrator."  Server.ClearError()  End Sub

编译代码

本示例需要:

  • 一个 Web 应用程序。
  • 名为 Errors.aspx 的 Web 窗体页,在该页上具有名为 Label1 的 Label 控件。

可靠编程

最好使用 Try...Catch 块环绕应为错误的任何代码,而不是依赖于全局错误处理程序。

在 Global.asax 中定义的错误处理程序将只捕捉应用于 ASP.NET 的错误。例如,如果用户请求在您的应用程序中不存在的 .aspx 文件,错误处理程序将捕捉该错误。但是,如果用户请求不存在的 .htm 文件,则错误处理程序不捕捉该错误。对于非 ASP.NET 错误,可以在 IIS 中创建自定义处理程序。

不能直接从 Global.asax 文件输出信息;必须将控件传输到其他页,通常是 Web 窗体页。在将控件传输到其他页时,使用 Server.Transfer。这保留当前的上下文,以便您可以从 Server.GetLastError 获取错误信息。

在处理某个错误后,必须通过调用服务器对象(HttpServerUtility 类)的 ClearError 方法将其清除。

安全性

不要显示可能帮助恶意用户破坏您的应用程序的错误信息。有关详细信息,请参见显示安全的错误信息。

Similar Posts:

  • 将代码从 VBA 转换到 Visual Basic .NET

    <!----><!----><!----><!----> 将代码从 VBA 转换到 Visual Basic .NET <!----> 2003 年 6 月 适用于: Microsoft "Visual Studio Tools for Office" Beta Microsoft Office Word 2003 Beta 2 Microsoft Office Excel 2003 Beta 2 Microsoft Visu

  • 第 1 章 面向 Visual Basic开发人员的 Microsoft .NET Framework入门指南

    本章内容: 对软件开发人员而言,Microsoft .NET Framework 以及面向 .NET Framework 的 Microsoft Visual Studio 对应版本都是卓越的创新.如果您曾用 Visual Basic 6(或更早的版本)进行过编程,您会很欣赏这些新的开发和执行环境在工作效率.安全性.可靠性以及"可部署性"方面的提高. 每个程序均依赖于其平台和其他库来提供运行时服务.Visual Basic 6 的编程人员非常了解由 Visual Basic 运行库提供

  • 编程大讲坛、坛坛是佳酿--编程大讲坛:Visual Basic核心开发技术从入门到精通

    [书名] 编程大讲坛:Visual Basic核心开发技术从入门到精通 [作者]薛小龙 [ISBN]978-7-121-09057-8 [出版社]电子工业出版社 [出版日期]2009年9月 [定 价]69.80 元(含光盘1张) 互动出版网购买 卓越网购买 [宣传语] 编程大讲坛.坛坛是佳酿 用实用的方式,讲解实用的技术和项目实践经验 书山有路勤为径,学海无涯苦作舟. --韩愈 这是出自我国唐代著名诗人.哲学家韩愈的治学名联.他教育我们要想学好书中的知识,需要自己付出辛勤的汗水.转眼间已经距大唐

  • 创建一个简单的组件在C#或Visual Basic,把它从JavaScript

    本演练演示如何使用.NET框架4.5,Visual Basic或C#创建自己的Windows运行时类型,打包在Windows运行时组件,以及如何从Windows Store应用程序专为Windows中使用JavaScript调用该组件. Visual Studio可以很容易地添加Windows编写的C#或Visual Basic到您的应用程序的运行时组件,并创建Windows运行时类型,你可以从JavaScript中调用.在内部,您的Windows运行时类型可以使用任何.NET Framewor

  • 用Visual Basic 6.0实现自动化测试

    用Visual Basic 6.0实现自动化测试 (赛宝软件评测中心<http://www.scstlab.com.cn>,广东 广州,510610) 黄茂生 本文摘自网上. 摘要:本文探讨了Visual Basic 6.0在测试自动化中应用的可能性,并列举了一些在实际工作中应用的例子 一 现有自动化测试工具的不足 当前,一个摆在软件测试自动化面前的一个很明显的事实是目前可用的工具并不能做一切我们想要它们做的事情:指望任何一种工具能够完全支持众多不同应用的测试自动化是不现实的.由于很难找到一个

  • 演练:Office 编程(C# 和 Visual Basic)

    https://msdn.microsoft.com/zh-cn/library/ee342218(v=vs.110).aspx PIA的全称是 primary interop assembly 主互操作程序集 http://www.cnblogs.com/pnljs/archive/2012/02/20/2359313.html 安装 Excel 外接应用程序 启动 Visual Studio. 在"文件"菜单上指向"新建",再单击"项目".

  • Visual Basic 9 不完全入门之LINQ进阶(2)

    在上一篇随笔中,我透过简单的代码,向大家展现了 Visual Basic 9 中 Linq 激动人心的新特性.而这一篇随笔,则将以更复杂的示例,展示 Linq 的灵活性与扩展性,以至于探索 Linq 的工作原理与进阶应用. Linq 的不足 .Net Framework 3.5 Beta 1 中,LINQ 的应用还存在一定限制,例如不支持 Group By,Having,以及 Join 语法.并且,它或多或少还存在一些 Bug,因此不建议用于需要高稳定性的环境中.当然,相信在最终发布版本中,它的

  • 从 Visual Basic 6.0 到 Visual Basic.NET 的转换(1)

    从 Visual Basic 6.0 到 Visual Basic.NET 的转换(1) Microsoft Visual Basic.NET 是 Microsoft Visual Basic? 的后续版本,它是基于 .NET 框架重新设计的,您可以用它来轻松地创建用于 Microsoft Windows? 操作系统和 Web 的下一代应用程序.使用 Visual Basic.NET,可视化开发 Web 应用程序.Web 服务.Windows 应用程序和服务器端组件将变得轻而易举.此外,Visu

  • 强烈推荐&lt;深入浅出--Visual Basic 2005入门、进阶与应用实例&gt;

    本书以Express Edition作为界面讲解示范,使读者可以参照本书的实例逐步入门并得到提高,同时本书可以快速带领新手了解微软.NET开发平台的应用,协助传统Visual Basic程序员顺利过渡到新的.NET开发平台. 购买地址:[url]http://www.china-pub.com/computers/common/info.asp?id=35268[/url] 内容简介: 本书从开发平台搭建入手,详细地介绍了Visual Basic 2005开发的相关技术,包括Visual Bas

  • Visual Basic常见问题解答

    下载和安装 常见问题 Visual Basic的一般编程问题 Visual Basic 的API 编程 Visual Basic访问数据库的常见问题 应用程序的发布 Visual Basic.NET 更多常见问题解答 http://support.microsoft.com/gp/vbfaq#8?spid=2971&sid=global

Tags: