ASP.NET 2.0 Ajax程序:處理異步調用中的異常

發表于:2008-04-08來源:作者:點擊數: 標簽:Ajax程序
——此文章摘自《ASP.NET AJAX程序設計:第II卷(客戶端)》定價:55元 特價:41.25元 購買 在傳統的Web應用程序中,處理異常相對來說比較簡單——即使 開發 者不作任何處理,瀏覽器也會默認地將收到的異常信息顯示在瀏覽器中。而對于Ajax應用程序來說,事情
——此文章摘自《ASP.NET AJAX程序設計:第II卷(客戶端)》定價:55元 特價:41.25元 購買>>

    在傳統的Web應用程序中,處理異常相對來說比較簡單——即使開發者不作任何處理,瀏覽器也會默認地將收到的異常信息顯示在瀏覽器中。而對于Ajax應用程序來說,事情卻并不那么簡單。Ajax程序“異步”的天性加上其后臺運行的行為,讓用戶乃至開發者都很難判斷某次對服務器的調用是否順利完成,瀏覽器自然也對Ajax程序運行時發生的異常無能為力。

    在本章前面兩節中,借助于 ASP.NET AJAX異步通信層的幫助,我們已經能夠容易地從客戶端向服務器端發起異步HTTP請求——在理想情況下,這自然不會有問題,也足夠使用。然而,Web程序在運行中會有很多不確定性,從網絡狀況的不穩定到開發者的粗心大意,任何一個環節出了問題均會導致某次異步調用以失敗告終。

    因此,在ASP.NET AJAX異步通信層的實現中,自然也內建了對異步調用時異常的處理方法。還記得前面曾經介紹過的在客戶端調用Web Service代理的語法嗎?
    [NameSpace].[ClassName].[MethodName](param1, param2,..., callbackFunction)

    在調用成功的回調函數callbackFunction的后面,我們還可以提供另一個調用失敗的回調函數。這樣,客戶端調用Web Service代理的語法就變為:
    [NameSpace].[ClassName].[MethodName](param1, param2,..., onSuclearcase/" target="_blank" >cceeded, onFailed)

    注意其中粗體部分新添加的onFailed回調函數,該函數將在本次異步通信出現異常時由ASP.NET AJAX異步通信層調用。而onSucceeded的行為不會受到任何影響,仍將在成功調用后執行。

    onFailed回調函數將接受一個類型為Sys.Net.WebServiceError的參數,表示異常對象。其函數簽名將類似如下所示:
    function onFailed(error) {
        // 取得異常信息并處理。
    }

    ASP.NET AJAX的客戶端Sys.Net.WebServiceError類型封裝了異步請求服務器時可能發生的異常,它提供了若干個只讀的屬性,提供了對異常信息的詳細描述。Sys.Net.WebServ- iceError類型的屬性如表3-1所示。

表3-1  Sys.Net.WebServiceError類型的屬性

屬    性

描    述

exceptionType

獲取服務器端異常的具體類型

message

獲取詳細的異常描述信息

statusCode

獲取造成異常的HTTP響應的狀態碼

stackTrace

獲取服務器端異常的棧跟蹤信息

timedOut

獲取一個布爾值,表示異常是否是由于網絡連接超時造成的

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97