Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)

原创 2013年12月04日 20:52:01

    无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个页面作为出现异常后跳转的页面,对于这个功能,ASP.net以及IIS有内建支持。而对于Ajax类型的应用程序来讲,一个页面就是一个程序,如果贸然将用户引导至另一个页面(即另一个程序),显得有些唐突。

   但是Ajax程序也可以实现以上的异常处理方法(接下来的介绍中会提到)Asp.Net  Ajax有一套自己的针对异步回调发生异常的处理机制。

    本篇博客将通过一个实例来介绍:Ajax程序:处理异步调用中的异常——使用Asp.Net Ajax内建的异常处理方法


1,引题


CatchError.aspx:

添加控件ScriptManagerUpdatePanel(两者配合实现异步)UpdatePanel中添加一个按钮Button,此ButtonOnclick响应Button1_Click事件;

计算机生成了可选文字:<%一Allo妮u:to祀rror:Redirect属性设置为false一%><asp:ScriptManagerID二汗ScriptM皿agerl"runat二“server"Allo说usto祀rrorsRedirect二份false"></asp:ScriptManager><asp:如datePanelID二“如datePanell"runat二“server"><Co狱e狱Te呻l欲e><asp:ButtonID二‘Buttonl"run欲二“server"Text二“Button"onClick二“Buttonl_Click"/></Conte掀Te呻late></asp:UPdatePanel>

 

(注:AllowCustomErrorsRedirect属性,默认值为true,表示在异步请求发生异常时是否沿用Web.configcustomErrors节中的设定,Web.configcustomErrors节中可以指定应用程序级别的错误处理页面(对于Ajax程序,尽量避免这种处理异常的方式(跳转到另一页面的方式));这种方式的简单例子如下:


1_CustomRedirect.aspx中:


页面效果如下:


 

1_CustomRedirect.aspx.cs中:


 

Web.Config中:


Error.aspx中:


 

运行:

点击按钮“Button”,跳转到Error.aspx页面,如下:


弹出如下页面,页面信息如下:


)

 

2,下面正式进入主题


1CachError.aspx.中:


(注:OnAsyncPostBackError="ScriptManager1_AsyncPostBackError"ScriptManagerAsyncPostBackError事件的处理函数为ScriptManager1_AsyncPostBackError()AsyncPostBackError事件将在异步回送引发异常时触发。在该事件的处理函数中,我们可分析异常产生的原因并根据需要过滤敏感信息)

 

2CachError.aspx.cs中,Button1_Click()事件:


 

CachError.aspx.cs中,ScriptManager1_AsyncPostBackError()事件:


(注:AsyncPostBackErrorMessage属性:表示了异步回送过程中发生的异常将显示出的信息)

 

3IE中运行:点击下面按钮Button


运行结果如下:


(注:我在FireFox中和360中运行,都没有运行成功,不知道为什么,也没有研究出来,最后我猜测应该是浏览器的原因)


3,思考

异常处理完了,但是却看似不是很友好,如何做出友好的异常处理显示呢?

使其友好,可如下:

 

1)在客户端CachError.aspx.cs中添加如下Javascript代码:


(注:Sys.WebForms.PageRequestManager.getInstance():获得PageRequestManager对象的实例;为其endRequest事件添加了函数function(sender,e){…},在该处理函数中,我们即可访问到异常的详细信息)

 

2)运行:点击下面按钮Button


运行结果如下:


4,总结

本篇博客通过一个实例介绍了:Ajax程序处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)

 

通过本博客您还可以了解:ScriptManagerAsyncPostBackError事件、AsyncPostBackErrorMessage属性;PageRequestManager对象及其endRequest事件。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

spring mvc 异常(runtime异常、ajax异常)统一处理与范例

SpringMVC 提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller——Exce...
  • yaohuanjames
  • yaohuanjames
  • 2016年10月15日 20:50
  • 2195

SpringMVC处理普通请求异常以及,ajax异常

1.spring MVC的异常处理机制 Spring MVC 通过HandlerExceptionResolver处理程序的异常,包括处理器映射,数据绑定以及处理器执行时发生的异常。HandlerE...
  • QQQQQQ654
  • QQQQQQ654
  • 2017年03月25日 02:59
  • 888

ajax和普通请求使用spring mvc在controller中的异常统一处理

ajax和普通请求使用spring mvc在controller中的异常统一处理
  • wenfeifang
  • wenfeifang
  • 2016年12月21日 16:33
  • 2134

ajax返回异常处理

ajax返回异常处理 ajax发出的请求要考虑接收方式和返回方式一致 @ResponseBody会自己处理乱码问题(前提xml要配置好) 方式一:   方式二...
  • y666666y
  • y666666y
  • 2017年04月17日 16:00
  • 892

程序开发中异常的处理方式

在开始这篇文章之前我先声明一下:这不是一篇讲述如何捕获异常的文章,更没有过多的代码阐述,而是根据自身经验讲述一种开发过程中常见的异常处理方式。到底是什么意思呢?不妨用一个例子来帮助阐述。 在实际开发...
  • jianxin160
  • jianxin160
  • 2010年09月26日 14:01
  • 4909

统一处理jquery ajax请求过程中的异常错误信息的机制

当jquery ajax向服务器发送请求,服务器发生异常,比如:400、403、404、500等异常,服务器将异常响应给客户端,此时的ajax可以获取异常信息并进行处理,但此时我们一般是跳转到与异常编...
  • javaloveiphone
  • javaloveiphone
  • 2015年12月04日 17:00
  • 7885

spring 通用异常处理,ajax异常返回json

直接看代码 ,实现spring HandlerExceptionResolver 类 这样子可以ajax请求返回json spring-servlet.xml需要如下配置 pub...
  • q502106957
  • q502106957
  • 2016年05月05日 09:40
  • 526

@RequiresPermissions 控制权限的异常处理以及Ajax方式请求时返回json

参考http://www.mamicode.com/info-detail-1746942.html 例如使用到注解:  @RequiresPermissions 来控制是否有对应权限才可...
  • qioutiandeyun
  • qioutiandeyun
  • 2017年09月13日 12:44
  • 485

JQuery $.ajax 如何捕获异常信息

下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。 type String (...
  • xwnxwn
  • xwnxwn
  • 2013年03月18日 08:25
  • 650

java异常处理,ajax调用后台异常,页面跳转

function clickautohideErr(data,i){ var result = data.responseText; if(result !=null && result !=...
  • tolcf
  • tolcf
  • 2014年09月12日 14:14
  • 11313
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
举报原因:
原因补充:

(最多只允许输入30个字)