一、On Error 語句
該語句的作用是:啟用或禁用錯誤處理程式。一般用法如下:
On Error Resume Next On Error GoTo 0
|
如果在您的代碼中
未使用On Error Resume Next語句,所發生的執行階段錯誤將顯示錯誤資訊,同時,代碼的執行也隨之終止。
但當你採用它時,就會使程式按照產生錯誤的語句之後的語句繼續執行,或是按照最近一次所調用的過程(該過程含有 On Error Resume Next 語句)中的語句繼續運行。這個語句可以不顧執行階段錯誤,繼續執行程式,之後您可以在過程內部建立錯誤處理常式。
在調用另一個過程時,On Error Resume Next 語句變為非活動的。所以,如果希望在常式中進行
內部錯誤處理,則應在每一個調用的常式中執行 On Error Resume Next 語句。
如果您已啟用 On Error Resume Next 錯誤處理程式,則可使用On Error GoTo 0禁用錯誤處理程式。
<script language=vbs>On Error Resume NextErr.Raise 6 '產生溢出錯誤。msgbox ("Error # " & CStr(Err.Number) & " " & Err.Description)cnbruce.com '缺少對象,因為cnbruce是自訂的msgbox ("Error # " & CStr(Err.Number) & " " & Err.Description)Err.com '對象不支援該屬性或方法msgbox ("Error # " & CStr(Err.Number) & " " & Err.Description)Err.Clear '清除錯誤。</script>
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
附註:要在代碼中產生執行階段錯誤,請用Err對象的Raise方法。
這樣的情況經常在偵錯工具的時候看見,比如分別調試下面兩程式則會顯示。
1,err1.asp
技術資訊(用於技術服務人員)
錯誤類型: Microsoft VBScript 執行階段錯誤 (0x800A0006) 溢出
|
2,err2.asp
調試的時候也就是
技術資訊(用於技術服務人員)
錯誤類型: Microsoft VBScript 執行階段錯誤 (0x800A01A8) 缺少對象: 'cnbruce'
|
但當你在首行添加了On Error Resume Next之後,發現不報錯提示,表明內部錯誤處理完成。
但進行下列程式的時候發現
3,err3.asp
<% On Error Resume Next cnbruce.com On Error GoTo 0 cnbruce.com %>
|
這時運用了On Error GoTo 0,則會顯示出錯資訊,只不過不是第三行,而是第五行的cnbruce.com錯誤對象了。
通過上面幾個例子,相信你對此語句應該有所領悟了。接著再看。
二,Option Explicit 語句
該語句的作用是:強制要求
顯式聲明指令碼中的所有變數。
所謂的顯式聲明,就是要使用 Dim、Private、Public 或 ReDim 語句聲明所有變數。如果在程式中試圖使用未經聲明的變數名,則會出現錯誤。用該語句可以避免拼錯已存在的變數名稱。對於作用範圍不清楚的變數,使用此語句也可避免發生混淆。
當然,如果要使用 Option Explicit,該語句必須出現在指令碼的任何其他語句之前。
4,err4.asp
<% Option Explicit ' 強制顯示聲明變數。 Dim MyVar '聲明變數。 MyVar = 10 '聲明變數不產生錯誤。 MyInt = 10 '未聲明變數產生錯誤。 response.write(MyInt) %>
|
報錯資訊如下:
技術資訊(用於技術服務人員)
錯誤類型: Microsoft VBScript 執行階段錯誤 (0x800A01F4) 變數未定義: 'MyInt'
|
再加一句:ASP中對VBScript提供了強勁的支援,能夠無縫整合VBScript的函數、方法,這樣給擴充ASP的現有功能提供了很大便利。由於ASP中已經模糊了變數類型的概念,所以,在進行ASP與VBScript互動的過程中,很多程式員也慣於不聲明VBScript的變數(我也是-_-!,以後注意),這樣加重了伺服器的解析負擔,進而影響伺服器的響應請求速度。
鑒於此,我們可以象在VB中強制使用者進行變數聲明一樣在VBScript中強制使用者進行變數聲明。實現方法就是:在ASP程式行首放置<% option explicit%>。實踐也證明,ASP檔案中使用“Option Explicit”可以使得程式出錯機會降到最少,並且會大大提升整體效能。
另外,聲明的變數有個順序的技巧,要麼以編譯時間,要麼以已耗用時間。聲明的變數都按此順序引用。
三、<%@LANGUAGE="xxx" CODEPAGE="936"%>
一般又分為<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>和<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>兩種。
LANGUAGE="VBSCRIPT"和
LANGUAGE="JAVASCRIPT",申明ASP當前使用的編程指令碼分別為VBSCRIPT和JAVASCRIPT。一般在程式第一行進行申明。當使用該指令碼申明後,以下所有程式運用全得符合該指令碼語言的所有文法,兩者不能混淆使用,否則出錯。我們在寫ASP時,一般不做限定,因為經常會在一ASP頁面寫不同的指令碼,當然這也是以犧牲執行效率為代價的。
CodePage:可讀/可寫。整型。定義用於在瀏覽器中顯示頁內容的字碼頁。字碼頁是字元集的數字值,不同的語言使用不同的字碼頁。例如,ANSI字碼頁為1252,日文字碼頁為932,簡體中文字碼頁為936。一般情況下,當你上傳到國外網頁空間,或者提取資料庫記錄等出現亂碼時,就採用這種方法解決。
四、絕對基礎,一定掌握
程式注釋:
為了養成良好的編程風格外,適度的注釋不可少,ASP提供了兩中注釋方式
1、單引號,在單引號之後的這行文字都視為注釋
2、rem 關鍵詞,在REM後的文字,視為注釋
指派陳述式:
ASP中一般變數的指派陳述式是 "="
而對象是用 set 語句來賦值的
算術運算子:
+ 加法
- 減法
* 乘法
/ 除法
\ 整數除法
Mod 餘數
^ 指數
關係運算子:
= 等於
<> 不等於
< 小於
> 大於
<= 小於等於
>= 大於等於
IS 比較變數是否指向同一對象
邏輯運算子:
1、NOT 將邏輯值加以反向
2、AND “和”或者說“且”運算
3、OR “或”運算
4、XOR “異或”運算
5、EPV 判斷兩個運算式邏輯相等,兩者相同結果為真,否則為假
6、IMP 判斷兩個運算式邏輯上是否相關。
字串運算子
ASP只有一個字串運算子 "&",它可以強迫兩個運算式做字串串連
變數申明
變數申明必須注意:
1、有效變數名稱不能大於255個字元
2、變數名稱必須一字母開頭
3、在同一個有效範圍內變數名稱必須唯一
變數申明 DIM 變數名稱
常數申明 CONST 常數名稱=常數值