asp.net错误捕获(错误处理)page_error事件使用方法
ASP.NET 提供了三种用于在出现错误时捕获和响应错误的主要方法:page_error事件、application_error 事件以及应用程序配置文件 (Web.config)。
这三种方法的主要作用无非是创建自定义的错误报告,创建自定义错误报告的作用无非是:出于安全方面的考虑,还有就是为了向用户展示友好的错误页面,提高程序的友好性。
Page_Error 事件,现举例说明如下:
此示例在浏览器中显示了详细的错误信息,提供此示例只是为了进行说明。向应用程序的最终用户展示出错的详细信息是非常危险的(尤其是web程序)。更适当的做法是向用户显示一条消息,告知其已发生错误,然后将具体的错误信息记录在事件日志中。
本例是在Page_Load事件中有意引发一个空异常来测试Page_Error 事件的。
举例:创建web程序 — 新建页面PageEvent.aspx,然后将以下代码添加到PageEvent.aspx中:
代码如下:
<script language="C#" runat="server">
void Page_Load(object sender, System.EventArgs e)
{
// 引发“空引用”异常 keleyi.com
throw (new ArgumentNullException());
}
protected void Page_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException(); // 获取错误
string err = "1.error in: " + Request.Url.ToString() + "</br>" +
"2.error Message: " + objErr.Message.ToString() + "</br>" +
"3.stack Trace: " + objErr.StackTrace.ToString() + "</br>";
Response.Write(err.ToString()); //输出错误信息
// Response.Redirect("ErrorPage.htm"); //可以重定向到友好的错误页面
Server.ClearError();
}
</script>
保存,右击该页面 —“在浏览器中查看”,即可看到捕获到的自定义错误信息
相关推荐
-
Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
1.用户登录 验证用户是否登录成功步骤直接忽略,用户登录成功后怎么保存当前用户登录信息(session,cookie),本文介绍的是身份验证(其实就是基于cookie)的,下面看看代码. 引入命名空间 using System.Web.Security; 复制代码 代码如下: Users ModelUser = new Users() { ID = 10000, Name = UserName, UserName = UserName, PassWord = PassWord, Roles =
-
在ASP.NET 2.0中操作数据之十四:使用FormView 的模板
导言 在上两节教程中,我们看到了如何使用TemplateField来自定义GridView和DetailsView的输入.TemplateField使我们可以高度自主的定义某个特定的列,但不管是GridView还是DetailsView,都会有点太规则了,简单的说就是它们都有着四四方方的格子一样的外观.很多情况下这样的格子一样的外观是很不错的,不过有的时候我们却需要使用一个不规则的显示外观.当需要显示一个单独的记录时,使用FormView控件就可以实现这种比较随意的外观呈现. 跟DetailsV
-
asp.net iis7默认文档错误异常的解决方法
默认文档异常错误 当修改默认文档时IIS提示信息 执行此操作时出错. 详细信息: 文件名: \\?\E:\DNN\web.config 行号: 102 错误: 在唯一密钥属性"value"设置为"Default.aspx"时,无法添加类型为"add"的重复集合项 错误原因:是IIS中已经设置了默认文档为default.aspx,这个时候就出现的冲突,引发的异常 解决方法:在项目的web.config文件中找到添加文档节点<add />
-
asp.net服务器上几种常见异常的解决方案.
如下 (1)配置Asp.net站点ISS报出:服务器应用程序不可用.具体异常信息如下: 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到.请检查此日志项以查明导致该错误发生的原因. 我检查ISS上其他的配置.发现全部都是Asp编写的网站.属性中查看运行的环境竟是Asp.net Framework 1.1版本
-
在ASP.NET 2.0中操作数据之十七:研究插入、更新和删除的关联事件
导言 当使用GridView.DetailsView或FormView控件的内建插入.编辑或删除特征时,在用户添加一条新记录或更新/删除一条现在记录的过程中发生了多个步骤.正如我们之前一节里所讨论的,在GridView中编辑一行时,保存(Update)和取消(Cancel)按钮将取代编辑(Edit)按钮,并且绑定列转换成TextBox.在用户更新了数据并点击保存按钮之后,下述步骤在回传时执行: 1.该GridView控件根据当前编辑行的唯一标识字段(通过DataKeyNames属性)组装它的Ob
-
在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息
导言 除了需要了解产品的单价.库存量和订货量,并按等级排序之外,用户可能还对统计信息感兴趣,比如说平均价格.库存总量等等.这些统计信息常常显示在报表最下面的一个统计行中.GridView控件可以含有一个页脚行,我们可以通过编程将统计数据插入到它的单元格里面去.这个任务给了我们以下3个挑战: 1.配置GridView以显示它的页脚行 2.确定统计数据.即我们应该如何计算平均价格还有库存总量? 3.将统计信息插入到页脚行的相应的单元格中 在本节教程中,我们将会看到如何去征服这些挑战.另外呢,我们将创
-
asp.net运行提示未将对象引用设置到对象的实例错误解决方法
未将对象引用设置到对象的实例 一.网络上的一般说法 1.ViewState对象为Null. 2.DateSet空. 3.sql语句或Datebase的原因导致DataReader空. 4.声明字符串变量时未赋空值就应用变量. 5.未用new初始化对象. 6.Session对象为空. 7.对控件赋文本值时,值不存在. 8.使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值. 9.使用FindControl时,控件不存在却没有做预处理. 10.重复定义造成未
-
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
但是,系统日志中可能会记录类似于以下内容的事件消息: 事件类型:警告 事件来源:W3SVC 事件类别:无 事件 ID: 1009 日期: 9/28/2005 时间:3:18:11 PM 用户:N/A 计算机:IIS-SERVER 描述: 为应用程序池"DefaultAppPool"提供服务的进程意外终止.进程 ID 是"2548".进程退出代码是"0xe0434f4d". 而且,应用程序日志中可能会记录类似于以下内容的事件消息: 事件类型:错误
-
asp.net 错误:0x8007000B 异常的解决方法
在Asp.net里调用非托管的.dll文件时,出现"An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)"这样的错误提示. 在c# winform的程序里大概知道该错误:0x8007000B是由于本机操作系统是64位,调用的DLL是32位而产生的错误,所以只需将网站的连接池的设置改成支持32位程序运行就可以解决问题了. 1.打开IIS管理器
-
在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常
导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时,这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们在前一节里看到的,无论ObjectDataSource控件还是
-
在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据
导言 结束前面的几节,我们已经探讨过了如何使用GridView.DetailsView和FormView控件来显示数据.这些控件简单地操作提供给它的数据.一般地,这些控件通过使用一个数据源控件,例如ObjectDataSource来存取数据.我们已经看过了ObjectDataSource是如何在ASP.NET页面和潜在的数据之间扮演一个代理的角色.当一个GridView需要显示数据时,它调用ObjectDataSource的Select()方法,这个方法转而调用一个来自我们的业务逻辑层(BLL)
随机推荐
- PHP实现自动发送邮件功能代码(qq 邮箱)
- PowerShell函数中限制数组参数个数的例子
- PowerShell函数中使用$PSBoundParameters获取输入参数列表实例
- jQuery绑定事件-多种实现方式总结
- jQuery动态添加.active 实现导航效果代码思路详解
- 详解CentOS中的route命令
- python私有属性和方法实例分析
- .NET Framework中定时器timer的单线程与多线程使用讲解
- PHP使用mysqli扩展连接MySQL数据库
- php将金额数字转化为中文大写
- 在Android中调用WebService实例
- Linux中设置Redis开机启动的方法
- c++归并排序详解
- Android中ListView的几种常见的优化方法总结
- 金山反病毒20041231_日报
- C#实现DevExpress本地化实例详解
- MMC提示不能打开文件SQLServerEnterpriseManager.MSC的解决方法
- Laravel5.5中利用Passport实现Auth认证的方法
- java编程约瑟夫问题实例分析
- 详解spring cloud config实现datasource的热部署