在使用ASP.Net開發網站時,其自帶的AJax控件(比如UpdatePanel)有時會拋出Timeout的異常(Sys.WebForms.PageRequestManagerParserErrorException)。
這種異常會使得最終用戶覺得莫名其妙,因此需要捕獲此類異常並進行處理。
捕獲異常的JS代碼如下:
01
<script type=
"text/Javascript"
>
02
var
prm = Sys.WebForms.PageRequestManager.getInstance();
03
prm.add_endRequest(EndRequestHandler);
04
function
EndRequestHandler(sender,args)
05
{
06
if
(args.get_error() != undefined)
07
{
08
var
errorMessage = args.get_error().message;
09
if
(errorMessage.substring(0, 51) ==
"Sys.WebForms.PageRequestManagerParserErrorException"
)
10
{
11
window.location.reload();
12
}
13
args.set_errorHandled(
true
);
//禁止彈出框架自身的SESSION TIMEOUT 提示框
14
}
15
}
16
</script>
如果有母版頁(MasterPage),將以上代碼直接加載母版頁即可。
注意:上面的代碼需放在</form>和</body>之間。否則會報Sys未定義的Javascript錯誤。
示例:AJaxTimeout。
將</form>和</body>之間的script注釋掉即可重現
"Sys.WebForms.PageRequestManagerParserErrorException"的Javascript錯誤。