編譯如下:
“腳本錯誤……是否調試腳本……?”或“類型錯誤……”這類提示是Web開發者每日生活的一部分。要預先考慮到所有可能遇到的錯誤并加以處理以免用戶看到這些對他們來說完全沒有意義的提示信息,作為一個Web開發者,我知道這幾乎是不可能的。
相反,我們只能接受錯誤總是可能隨時出現這個事實,然后拿出某種辦法巧妙地控制它們,這正是本文要介紹的內容。
在這篇文章中,我們將介紹如何才能響應由于腳本、網絡、硬件或其他意外缺陷導致的運行時錯誤,以及如何控制這些錯誤、可以采取哪些處理步驟來修正這些錯誤。
健壯的錯誤控制機制涉及到兩個方面,第一是服務器端的錯誤控制,第二是瀏覽器內客戶端腳本的錯誤控制。
服務器端錯誤控制
IIS 5.0 使用ASP 3.0腳本引擎,它提供了許多新的功能來處理Web服務器上可能遇到的錯誤。其中ASPError內建對象是ASP 3.0引入的一個最值得注意的錯誤處理對象。對于那些熟悉VB/VBScript的開發者來說,ASPError對象和Err對象非常相似,不過前者包含更多有關錯誤的信息。
IIS在腳本執行遇到錯誤時會創建ASPError對象,并在這個對象中填充以下信息以及其他一些細節: ASPCode:由IIS返回的ASP錯誤代碼。 Number:包含標準的COM錯誤代碼。 Source:包含產生錯誤的實際源代碼。 File:產生錯誤的ASP文件的名字。 Line:ASP腳本中的行號。 Description:有關錯誤的簡短說明。
另外還有一個在IIS 4.0中已經存在,但在IIS 5.0中有所增強的功能,這就是將所有未被控制的錯誤重定向到指定ASP頁面的功能。如果再用VB來作比較的話,我們可以把這個功能看作VB中的“On Error Gogo 錯誤處理過程”語句,但VB中錯誤控制只適用于特定函數,IIS中的錯誤定向對所有的ASP頁面都有效。
Visual Basic函數中的錯誤控制舉例如下: Sub DoSomething On error goto ErrHandler < -- (VB錯誤控制語句) code.....code .... code .... If an error occurs in this section the control is automatically transferred to the ErrHandler section below. code.....code .... code .... ErrHandler: All errors come here and hence this section can be used to handle errors preventing the user from seeing them. End Sub
假設網站有50個Web頁面,如果其中任意一個頁面產生了運行時錯誤,則控制自動轉到指定的ASP頁面。下面是設置錯誤處理頁面的具體步驟:
在MMC控制臺(Windows NT)或者IIS服務(Windows 2000)中,擴展樹找到待設置的Web網站。 右擊Web網站名字顯示菜單。 單擊“屬性”。 在屬性對話框中,選擇“自定義錯誤信息”頁面。 滾動列表框,找到“HTTP錯誤”顯示為“500;100”的那一行。 雙擊該行,從“消息類型”列表框選擇“URL”。 在URL輸入框輸入當Web網站遇到運行時錯誤時所執行頁面的URL。 注意:輸入虛擬路徑,不要輸入完整的URL。例如: 可以輸入: /myWebSite/Tools/MyErrorHandlingPage.asp 但不要輸入: http://myServer/myWebSite/Tools/MyErrorHandlingPage.asp
單擊“確定”接受設置并關閉對話框。 這樣就啟用了網站的錯誤控制功能。接下來在控制轉到MyErrorHandlingPage.asp之后如何處理就要根據實際情況而定。根據不同的錯誤類型,每一個網站都可能用不同的方式處理它們。
|