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

ZDNet软件频道 时间:2008-09-12 作者: | IT专家网 我要评论()
本文关键词:AJAX NET ASP Windows
 最近做一个项目时,大量应用了Asp.net ajax,由于在UpdatePanel这种异步更新模式下,后台处理时所发生的异常并不会导致客户端的界面发生变化.
 最近做一个项目时,大量应用了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异常。所以这种方式也不理想。

  因此,想和园子里各位高人探讨一下如何在利用了ASP.NET AJAX这种异常处理的便捷性的时候,能兼顾处理好其它的未处理异常(比如Page_Load里!IsPostBack的代码中出现的异常)。

AJAX

NET

ASP

Windows


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134