不管您的计划多么精密、经验多么丰富,脚本错误 (bug) 可能在最初就使您的 ASP 服务器端的脚本没法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 ASP 程序是很是重要的。数组
Microsoft® Script Debugger 是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。Script Debugger 与 Windows Internet Explorer 3.0 版本或更新的版本一块儿工做。经过它,您能够:浏览器
注意 您可使用调试工具查看脚本并找到错误所在,可是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本而后保存,再运行脚本。服务器
(该功能不能用于 Windows 95 或更高的版本。)编辑器
在开始调试服务器端脚本以前,您必须首先配置 Web 服务器,使其支持 ASP 调试。函数
在启用 Web 服务器调试以后,就可使用下面的任一方法调试脚本:工具
调试服务器端脚本时,您可能会碰到各类类型的错误。其中的某些错误使脚本没法正确执行、程序中止执行或返回错误结果。测试
语法错误是常常碰到的错误,它是由不正确的脚本语法致使的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能致使您的脚本不能运行。this
运行时错误是脚本在执行过程当中脚本指令试图执行不可能的动做而致使的。例如,下面的脚本中包含一个被零除(一种非法的数学运算)的函数,将产生运行时错误:spa
<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>
必须纠正致使运行时错误的错误,这样才能使脚本在运行时不被中断。debug
逻辑错误一般多是潜在和难以检测的。若是有因键入错误或程序逻辑流程错误引发的逻辑错误,脚本可能会成功运行,但产生的结果倒是错的。例如,一服务器端脚本计划对一个值列表排序,若是本应使用 “<” 符号比较数值,但却使用了“ >” 符号,那么将返回不正确的排序结果。
可使用多种不一样的调试技术来查找错误的根源并测试应用程序。
当一个运行时错误中断了 ASP 脚本的执行时,Microsoft 脚本调试程序自动启动,显示 .asp 文件,将语句指针指向致使错误的行,并产生错误消息。这种调试方式称为实时 (JIT) 调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所作的修正,而后再运行脚本。
当一个错误发生而且很难找到错误的根源时,可以使用预设断点的调试方法。断点将脚本暂停在特定一行。能够在脚本中有疑问处设置一个或多个不一样的断点,而后使用调试器去改正脚本中设置的变量或属性的值。当您纠正这些错误以后,能够清除断点以便您的脚本能不间断地运行。
请用 Microsoft 脚本调试程序打开脚本,设置断点。而后用 Web 浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,而且语句指针会指在设置了断点的行上。
经过在服务器端脚本中有问题的部分前面插入 Stop 语句,您也能够将断点添加到用 VBScript 编写的服务器端脚本中。例如,下面的 ASP 脚本包含一个 Stop 语句,用来在显示结果以前暂停执行:
<%
dayvalue = 3 TheDay = WeekDayName(dayvalue) Stop 'set breakpoint here.
Response.end 'or use this code to set breakpoint
Response.Write("Today is " + TheDay) %>
当您在请求 Web 浏览器使用的先前的脚本时,调试程序启动并自动显示 .asp 文件,并且语句指针会指示 stop 语句的位置。必定要记住从交付使用的 .asp 文件中删除 Stop 语句。
要将断点加到用 Microsoft® JScript 编写的服务器端脚本中,可在有疑问的行前插入 debugger 语句。例如,下面的脚本包含了 debugger 语句,每次脚本循环到一个新值时,就会中断执行并自动启动 Microsoft 脚本调试程序。
<%@ 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>")
}
}
%>
请记住从交付使用的 .asp 文件中删除 debugger 语句。
注意 不要混淆 debugger 语句和 JScript break 语句。在程序执行期间,break 语句仅退出当前循环,并不激活 Microsoft 脚本调试器,也不暂停程序的执行。
除脚本调试程序外,一套好的调试技巧也能减小花费在分析脚本错误根源上的大量时间。尽管大部分错误是由显而易见的根源致使的,但命令拼写错误或丢失变量、某种类型的逻辑和执行错误也可能因不太明显的根源所致。
参考出处:http://www.yesky.com/imagesnew/software/asp/iiwadbug.htm