当前位置: 首页 > 图文教程 > 网络编程 > ASP > 关于Asp.net ajax下的异常处理

ASP
ASP视频教程:后台页面加入限制访问和禁用缓存功能
ASP视频教程:制作网站前台首页
ASP视频教程:备份和还原SQL Server 2000数据库
ASP实例教程:asp无限级显示分类代码
IIS无法启动错误的几种情况汇总
asp Http_Referer,Server_Name和Http_Host
ASP 调用带参数输出的COM接口
隐藏修改文件时间和文件属性的ASP脚本
ASP Crazy 模版操作类(最简单的模板类、仅提供交流)
asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。
asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数
asp 判断上传文件中是否存在危险代码
asp 获取url函数小结
ASP 调用dll及封装dll实例
asp 实现的冒泡排序程序
asp 自定义分段函数/求第N名成绩
ASP 高级模板引擎实现类
ASP 常见的连接字符串写法(access2007)
ASP向Excel导数据(图片)终结版 ASP操作Excel
ASP实现防止网站被采集代码

ASP 中的 关于Asp.net ajax下的异常处理


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 267 ::
收藏到网摘: n/a

最近做一个项目时,大量应用了Asp.net ajax,由于在UpdatePanel这种异步更新模式下,后台处理时所发生的异常并不会导致客户端的界面发生变化,而是直接以alert的方式弹出异常信息,所以我就偷了个懒,在后台检测到不符合要求的输入之类的情况下,就直接把错误提示信息throw一下就好了。但现在发现问题了,就是这样一来,如何处理其它的未处理异常?

为了不至于全部重新来修改一遍,我考虑了这几种处理方式:
1.在web.config的customErrors配置中设置当出现未处理的异常时转到指定页;
2.在Global.asax的Application_Error事件处理程序中,将异常信息输出到指定的页面显示给客户端;

3.由于我所有的页面都是继承自一个MyPage类(它又继承自System.Web.UI.Page),所以也可以考虑在MyPage的Page_Error事件处理程序中,来将异常信息输出到指定的页面显示给客户端。

但是,第一和第三种方法,会在出现异常时直接转到指定页,从而达不到直接alert错误提示的效果;而第二种方法,倒是不会管这种异步的程序异常,不会把页面重定向,但在Application_Error里面用Server.GetLastError()方法捕获的异常很多时候又不是直接的包含了友好错误信息的那个异常,而是它所导致的异常,比如经常就会导致System.Web.HttpUnhandledException异常。所以这种方式也不理想。

与大家一起讨论。