ASP編程入門進階(十二):ASP技巧累加(一)_ASP基礎

來源:互聯網
上載者:User
一、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

<%Err.Raise 6%>


技術資訊(用於技術服務人員)

錯誤類型:
Microsoft VBScript 執行階段錯誤 (0x800A0006)
溢出


2,err2.asp

<%cnbruce.com%>

調試的時候也就是

技術資訊(用於技術服務人員)

錯誤類型:
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 常數名稱=常數值
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.