您的位置:首页 > 编程语言 > ASP

asp.net ajax中的错误处理

2012-06-27 22:05 351 查看
• 服务器端ScriptManager设置
– AllowCustomErrorsRedirect属性:遇到错误是否 自动根据web.config中的设置跳转,默认值为True

– AsyncPostBackError事件:异步刷新中出现错误时触发的事件。

– AsyncPostBackErrorMessage属性:客户端接受到的错误信息。

客户端编程
– 响应PageRequestManager的endRequest事件。

– 将errorHandled属性设为true。

-------------------------------------------------------------------------------------------------------------------------------------

实例代码:

aspx页面代码

<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="ErrorHandling.asmx" />
</Services>
</asp:ScriptManager>

<input type="button" value="getDivision" onclick="getDivision(5, 0)" />
<input type="button" value="timeout" onclick="timeout()" />

<script language="javascript" type="text/javascript">
function getDivision(a, b)
{
ErrorHandling.GetDivision(a, b, null, failedCallback);
}

function timeout()
{
ErrorHandling.set_timeout(2000);//设置超时时间
ErrorHandling.Timeout(null, failedCallback);
}

function failedCallback(error)
{
var message = String.format(
"Timeout: {0}\nMessage: {1}\nExceptionType: {2}\nStackTrace: {3}",
error.get_timedOut(),
error.get_message(),
error.get_exceptionType(),
error.get_stackTrace());

alert(message);
}
</script>

ErrorHandling.asmx页面代码

<%@ WebService Language="C#" Class="ErrorHandling" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Threading;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ErrorHandling : System.Web.Services.WebService
{
[WebMethod]
public int GetDivision(int a, int b)
{
return a / b;//0不能做为除数
}

[WebMethod]
public int Timeout()
{
Thread.Sleep(5000);
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息