国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP系列講座(十七)調(diào)試 ASP 腳本

2019-11-18 22:36:49
字體:
供稿:網(wǎng)友
無論您的計(jì)劃多么精密、經(jīng)驗(yàn)多么豐富,腳本錯(cuò)誤 (bug) 可能在最初就使您的 asp 服務(wù)器端的腳本無法正確運(yùn)行。也就是說調(diào)試,即查找和糾正腳本錯(cuò)誤,對(duì)開發(fā)一個(gè)成功的和強(qiáng)健的 ASP 程序是非常重要的。

Microsoft 腳本調(diào)試工具
Microsoft® Script Debugger 是一個(gè)功能強(qiáng)大的調(diào)試工具,它能幫助您迅速查找錯(cuò)誤并對(duì)服務(wù)器端的腳本進(jìn)行交互測試。Script Debugger 與 Windows Internet Explorer 3.0 版本或更新的版本一起工作。通過它,您可以:

逐行運(yùn)行服務(wù)器端腳本。
在服務(wù)器端腳本執(zhí)行時(shí),打開命令窗口監(jiān)視變量、屬性或數(shù)組元素的值。
在特定行設(shè)置暫停標(biāo)記,掛起服務(wù)器端腳本(使用調(diào)試工具或腳本命令)。
在運(yùn)行服務(wù)器端腳本時(shí)跟蹤過程。
注意   您可以使用調(diào)試工具查看腳本并找到錯(cuò)誤所在,但是不能直接編輯腳本。要想改正錯(cuò)誤,必須用編輯器編輯腳本然后保存,再運(yùn)行腳本。

(該功能不能用于 Windows 95 或更高的版本。)

啟用調(diào)試
在開始調(diào)試服務(wù)器端腳本之前,您必須首先配置 Web 服務(wù)器,使其支持 ASP 調(diào)試。

在啟用 Web 服務(wù)器調(diào)試之后,就可以使用下面的任一方法調(diào)試腳本:

手工打開 Microsoft 腳本調(diào)試器,調(diào)試 ASP 服務(wù)器端腳本。
使用 Internet Explorer 請(qǐng)求 .asp 文件。如果該文件包含錯(cuò)誤或人為添加的停止執(zhí)行語句,那么 Microsoft 腳本調(diào)試程序?qū)⒆詣?dòng)啟動(dòng),顯示該腳本,并且指出錯(cuò)誤來源。
腳本錯(cuò)誤
調(diào)試服務(wù)器端腳本時(shí),您可能會(huì)碰到各種類型的錯(cuò)誤。其中的某些錯(cuò)誤使腳本無法正確執(zhí)行、程序停止執(zhí)行或返回錯(cuò)誤結(jié)果。

語法錯(cuò)誤
語法錯(cuò)誤是經(jīng)常碰到的錯(cuò)誤,它是由不正確的腳本語法導(dǎo)致的。例如,命令拼寫錯(cuò)誤或傳遞給函數(shù)的參數(shù)不正確都將產(chǎn)生錯(cuò)誤。語法錯(cuò)誤可能導(dǎo)致您的腳本不能運(yùn)行。

運(yùn)行時(shí)錯(cuò)誤
運(yùn)行時(shí)錯(cuò)誤是腳本在執(zhí)行過程中腳本指令試圖執(zhí)行不可能的動(dòng)作而導(dǎo)致的。例如,下面的腳本中包含一個(gè)被零除(一種非法的數(shù)學(xué)運(yùn)算)的函數(shù),將產(chǎn)生運(yùn)行時(shí)錯(cuò)誤:

<script language = "VBScript" runat = server>
  Result = Findanswer(15)
  document.write ("The answer is " &Result)

  Function Findanswer(x)
  'This statement generates a run-time error.
   Findanswer = x/0      
  End Function
</script>
必須糾正導(dǎo)致運(yùn)行時(shí)錯(cuò)誤的錯(cuò)誤,這樣才能使腳本在運(yùn)行時(shí)不被中斷。

邏輯錯(cuò)誤
邏輯錯(cuò)誤通常可能是潛在和難以檢測的。如果有因鍵入錯(cuò)誤或程序邏輯流程錯(cuò)誤引起的邏輯錯(cuò)誤,腳本可能會(huì)成功運(yùn)行,但產(chǎn)生的結(jié)果卻是錯(cuò)的。例如,一服務(wù)器端腳本計(jì)劃對(duì)一個(gè)值列表排序,如果本應(yīng)使用 “<” 符號(hào)比較數(shù)值,但卻使用了“ >” 符號(hào),那么將返回不正確的排序結(jié)果。

錯(cuò)誤調(diào)試技術(shù)
可以使用多種不同的調(diào)試技術(shù)來查找錯(cuò)誤的根源并測試應(yīng)用程序。

實(shí)時(shí) (Just-In-Time, JIT) 調(diào)試
當(dāng)一個(gè)運(yùn)行時(shí)錯(cuò)誤中斷了 ASP 腳本的執(zhí)行時(shí),Microsoft 腳本調(diào)試程序自動(dòng)啟動(dòng),顯示 .asp 文件,將語句指針指向?qū)е洛e(cuò)誤的行,并產(chǎn)生錯(cuò)誤消息。這種調(diào)試方式稱為實(shí)時(shí) (JIT) 調(diào)試,計(jì)算機(jī)將暫停程序的執(zhí)行。必須用編輯程序糾正這些錯(cuò)誤,保存所做的修正,然后再運(yùn)行腳本。

斷點(diǎn)調(diào)試
當(dāng)一個(gè)錯(cuò)誤發(fā)生并且很難找到錯(cuò)誤的根源時(shí),可使用預(yù)設(shè)斷點(diǎn)的調(diào)試方法。斷點(diǎn)將腳本暫停在特定一行。可以在腳本中有疑問處設(shè)置一個(gè)或多個(gè)不同的斷點(diǎn),然后使用調(diào)試器去改正腳本中設(shè)置的變量或?qū)傩缘闹怠.?dāng)您糾正這些錯(cuò)誤之后,可以清除斷點(diǎn)以便您的腳本能不間斷地運(yùn)行。

請(qǐng)用 Microsoft 腳本調(diào)試程序打開腳本,設(shè)置斷點(diǎn)。然后用 Web 瀏覽器請(qǐng)求此腳本。當(dāng)執(zhí)行到腳本中含有斷點(diǎn)的行時(shí),計(jì)算機(jī)啟動(dòng)腳本調(diào)試程序,并且語句指針會(huì)指在設(shè)置了斷點(diǎn)的行上。

VBScript Stop 語句調(diào)試器
通過在服務(wù)器端腳本中有問題的部分前面插入 Stop 語句,您也可以將斷點(diǎn)添加到用 VBScript 編寫的服務(wù)器端腳本中。例如,下面的 ASP 腳本包含一個(gè) Stop 語句,用來在顯示結(jié)果之前暫停執(zhí)行:

<%
  dayvalue = 3
  TheDay  =  WeekDayName(dayvalue)
  Stop 'set breakpoint here.
  Response.Write("Today is " + TheDay)
%>
當(dāng)您在請(qǐng)求 Web 瀏覽器使用的先前的腳本時(shí),調(diào)試程序啟動(dòng)并自動(dòng)顯示 .asp 文件,而且語句指針會(huì)指示 stop 語句的位置。一定要記住從交付使用的 .asp 文件中刪除 Stop 語句。

用 JScript Debugger 語句調(diào)試
要將斷點(diǎn)加到用 Microsoft&reg; JScript 編寫的服務(wù)器端腳本中,可在有疑問的行前插入 debugger 語句。例如,下面的腳本包含了 debugger 語句,每次腳本循環(huán)到一個(gè)新值時(shí),就會(huì)中斷執(zhí)行并自動(dòng)啟動(dòng) Microsoft 腳本調(diào)試程序。

<%@ Language="JScript"  %>
<%
  for (var count = 1; count <= 10; count++)  {        
    var eventest = count%2;      
    debugger       //Sets breakpoint
    if (eventest == 0) {
      response.write("Even value is " + count + "<br>")
    }
  }
%>
請(qǐng)記住從交付使用的 .asp 文件中刪除 debugger 語句。

注意   不要混淆 debugger 語句和 JScript break 語句。在程序執(zhí)行期間,break 語句僅退出當(dāng)前循環(huán),并不激活 Microsoft 腳本調(diào)試器,也不暫停程序的執(zhí)行。

腳本調(diào)試技巧
除腳本調(diào)試程序外,一套好的調(diào)試技巧也能減少花費(fèi)在分析腳本錯(cuò)誤根源上的大量時(shí)間。盡管大部分錯(cuò)誤是由顯而易見的根源導(dǎo)致的,但命令拼寫錯(cuò)誤或丟失變量、某種類型的邏輯和執(zhí)行錯(cuò)誤也可能因不太明顯的根源所致。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 都昌县| 颍上县| 西林县| 德昌县| 察隅县| 内黄县| 珲春市| 丹阳市| 天津市| 玛纳斯县| 旺苍县| 那曲县| 枣强县| 石楼县| 右玉县| 启东市| 富川| 琼海市| 吉林市| 祁东县| 赞皇县| 泉州市| 桑植县| 马山县| 丽江市| 股票| 元阳县| 綦江县| 景洪市| 璧山县| 荥阳市| 枣阳市| 津市市| 张掖市| 博罗县| 洪泽县| 新建县| 新建县| 通化市| 房山区| 沧州市|