錯誤處理是讓程序員牢騷滿腹的東西之一。讓我們來面對它,我們不寫錯誤的代碼就是了。。。或者類似的想法。不幸的是,代碼中的運行時錯誤可能有許多的原因,從硬件、軟件的改變到使用了別的開發團隊的代碼等等。有效的處理這些錯誤并使得它對于網站正常操作過程的中斷最小化是每個有良知的程序員的責任。 On Error Resume Next (打開錯誤處理功能)和On Error GoTo 0 (關閉錯誤處理功能). 為了在你的ASP 頁面里有效的使用這個錯誤處理結構,你可能需要用這些結構包括可能拋出異常的代碼,就象下面這樣:
<% Dim myVar On Error Resume Next '下面一行代碼會在MSXML 4.0沒有被安裝或者已經損壞的情況下產生錯誤 Set myVar = Server.CreateObject("MSXML2.DOMDocument.4.0") If Err.Number <> 0 Then ' 在這里處理錯誤 ' 結束錯誤處理,避免以后發生的錯誤無法被發現 Else ' myVar現在指向 MSXML 4.0 DOMDocument的一個實例 ' 結束錯誤處理,避免以后發生的錯誤無法被發現 On Error GoTo 0 End If
就象你看到的一樣,如果你要在每一行現有的可能發生錯誤的代碼上使用上面的規則,你的程序馬上就會充滿 "On Error" 和 "If Err.Number <> 0 Then . . ." 這樣的結構。 而另一方面JScript對于健壯的錯誤處理機制“結構化異常處理(SEH)”有內建的支持。使用SEH能夠讓你的軟件開發團隊順利的轉移到.NET 環境上來,因為SEH是JScript.NET, VB.NET, 和 C#缺省的錯誤處理機制。(注意:.NET不支持VBScript。)下面的例子代碼執行與VBScript代碼相同的操作,但是使用JScript語言并用SEH來處理異常 <%@ LANGUAGE="JScript" %> <% varmyVar; try { myVar = Server.CreateObject("MSXML2.DOMDocument.4.0"); // 如果上面發生了錯誤,那么catch // 代碼塊就會立刻被執行 // 并在myVar上進行必要的操作。 } catch (e) { // 在這里處理異常,異常本身可以用 // 'e' 變量進行引用。 } finally { // 在這里進行所有收尾工作 // 這段代碼不管錯誤有沒有發生 // (也就是“catch”塊有沒有運行) // 都會執行。 } %> 通過在服務器端使用JScript,你就得到了SEH帶來的好處,以及對復雜ASP對象,比方Server,Request和Response對象的完全使用。要把這種腳本語言設置成你的ASP頁面的缺省語言,你只需要簡單的在你的ASP頁面上添加@LANGUAGE指令,就象上面的例子那樣。
|
溫馨提示:喜歡本站的話,請收藏一下本站!