失败时的回调函数onFailed()才是本示例程序的重点:
function onFailed(error) {
// 取得异常信息。
var stackTrace = error.get_stackTrace();
var message = error.get_message();
var statusCode = error.get_statusCode();
var exceptionType = error.get_exceptionType();
var timeout = error.get_timedOut();
// 显示异常信息。
$get("result").innerHTML =
"Stack Trace: " + stackTrace + "
" +
"Service Error: " + message + "
" +
"Status Code: " + statusCode + "
" +
"Exception Type: " + exceptionType + "
" +
"Is Timeout: " + timeout;
$get("btnInvoke").value = "?";
}
可以看到,onFailed()函数首先取得了传递进来的Sys.Net.WebServiceError对象的各个属性,然后再依次显示到id为result的中。
这样就完成了本示例程序的编写。运行该程序并尝试做一些除法,若程序编写正确的话,你将看到如图3-4、图3-5和图3-6所示的界面。
当然,本示例程序的目的是为了演示调用服务器端Web Service时发生异常的处理方法,所以自然事无巨细地将所有异常信息均显示了出来。而在实际开发中,我们则不应该完整显示出此类唐突的异常细节。通常的做法是根据不同的异常进行相应的处理,并在需要的情况下再为用户显示出相对友好的提示消息。