- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
ASP 中健壯的頁結構的異常處理
錯誤處理是讓程序員牢騷滿腹的東西之一。讓我們來面對它,我們不寫錯誤的代碼就是了。。。或者類似的想法。不幸的是,代碼中的運行時錯誤可能有許多的原因,從硬件、軟件的改變到使用了別的開發團隊的代碼等等。有效的處理這些錯誤並使得它對於網站正常操作過程的中斷最小化是每個有良知的程序員的責任。



在本文討論的範圍內,有三個不同的地方可以發生錯誤:腳本,中間件,以及IT內部架構。IT內部架構的錯誤,比方周期性的性能降低並導致IIS進行(Inetinfo.exe)崩潰幾乎是無法避免的。這種類型的錯誤通常只能打電話要求技術支持並且會讓系統管理員忙上很久。開發者不能為阻止這類錯誤做些什麼,但是我們通常能夠應付和改正腳本和中間件中的錯誤。 在安裝了IIS以後,缺省的服務器端腳本語言被設置成VBScript。許多Web 開發團隊在他們的開發環境中保持了這些缺省設置,這是不幸的,因為VBScript對於處理運行時錯誤的支持非常的差。在VBScript中,開發者可以使用的唯一一個錯誤處理結構是

On Error Resume Next (打開錯誤處理功能) 和
On Error GoTo 0 (關閉錯誤處理功能).
為了在你的ASP 頁面埵陵蘆漕洏帠o個錯誤處理結構,你可能需要用這些結構包括可能拋出異常的代碼,就象下面這樣:


<%
Dim myVar
On Error Resume Next
'下面一行代碼會在MSXML 4.0沒有被安裝或者已經損壞的情況下產生錯誤
Set myVar = Server.CreateObject("MSXML2.DOMDocument.4.0")
If Err.Number <> 0 Then
' 在這堻B理錯誤
' 結束錯誤處理,避免以後發生的錯誤無法被發現
On Error GoTo 0
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" %>
<%
var myVar;
try {
myVar = Server.CreateObject("MSXML2.DOMDocument.4.0");
// 如果上面發生了錯誤,那麼catch
// 代碼塊就會立刻被執行
// 並在myVar上進行必要的操作。
}
catch (e) {
// 在這堻B理異常,異常本身可以用
// 'e' 變量進行引用。
}
finally {
// 在這媔i行所有收尾工作
// 這段代碼不管錯誤有沒有發生
// (也就是“catch”塊有沒有運行)
// 都會執行。
}
%>
通過在服務器端使用JScript,你就得到了SEH帶來的好處,以及對複雜ASP對象,比方Server,Request和Response對象的完全使用。要把這種腳本語言設置成你的ASP頁面的缺省語言,你只需要簡單的在你的ASP頁面上添加@LANGUAGE指令,就象上面的例子那樣。



頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2017 COOLASP All Rights Reserved