IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> ajax

脚本的故事(2004年9月)

【 作者:脚本专家    来源:Microsoft TechNet  更新时间:2006-5-9 | 字体:

分步执行代码

举一个软件的例子,Microsoft Word 是一个事件驱动的应用程序。在启动 Word 时,它不执行任何操作;它只是静静地等待事件的发生,等待您单击鼠标按钮或按键盘上的键或者执行某种操作。(当然了,如果等待时间过长,即使在您执行某种操作之后,它也不会做出任何响应,但这已超出了本文讨论的范围。)

与之相比,脚本通常是过程驱动的:在启动后,它们通常并不等待事件发生,而是直接运行。在脚本启动后,它运行第一行代码,然后(甚至没有停下来“喘口气”)开始运行其余的代码行,整个过程一蹴而就。在运行完代码行后,脚本就会自动终止。

只要一切正常,这就是一种很好的模型。然而,如果执行情况与计划的情况不完全一致时,此模型就会中止一段时间。例如,假定有一个用于完成以下任务的脚本:

?

在本地计算机上创建一个文本文件。

?

从几个服务器中检索硬件信息。

?

将检索到的信息写入所创建的文本文件中。

?

将该文本文件从本地计算机复制到远程计算机上。

?

从本地计算机上删除该文本文件。

您运行该脚本,一眨眼的功夫,脚本就完成了它的任务。您检查本地计算机,没有文本文件。这很正常呀!毕竟,脚本就是应该从本地计算机上删除文本文件。现在,检查一下远程计算机:也没有文本文件。麻烦了!显然,出现了问题,但到底出现了什么问题,问题出在哪里呢?即使这是一个相对简单的脚本,脚本也可能会在很多地方出现错误。我怎么能知道问题到底出在哪里呢?

注意。 我们假定此脚本中包含防止脚本崩溃的 On Error Resume Next。但要记住,即使删除 On Error Resume Next 也不一定能找出实际发生错误的确切位置。请考虑下面的简单脚本:

intMyNumber = 2
A = intMyNumbr
B = 3
C = B / A

如果您运行此脚本,就会在第 4 行出现错误,这是因为除数为 0。但实际上问题并不是出在第 4 行,问题实际出在第 2 行,您在该行中将变量 A 设置为 0 而不是 2。这是由于拼写错误造成的:您为 A 分配 intNumbr 的值而不是 intNumber 的值。因为 intNumbr 没有 值,所以将 A 赋值为 0,而不是您希望分配的 2。

不可否认,这是一个很容易找出来的错误。但问题的关键是,在脚本崩溃时显示的错误信息只告诉您错误在哪一行中显现了出来;也就是说代码中的错误在哪一行中实际引发了错误。错误的根本原因(如将变量设置为 0)可能在数百行代码之前就已经存在了。

处理此类问题的一种方法是使用 Script Debugger 来“分步执行”代码。分步执行代码即逐行运行脚本。不可否认,如果脚本很长,这可能会是一项冗长而乏味的工作;不过,我们一会将向您介绍一种解决方法。另一方面,通过分步执行代码,您可以在每一步停下来并确保脚本正常工作。

例如,我们假定的脚本在运行时首先应该创建一个文本文件。在我们按原样运行脚本时,我们不知道是否在第一个地方创建了文本文件。但通过分步执行代码,我们就可以非常方便地验证这一点。我们运行将创建文本文件的代码行,然后停止。随后,我们打开 Windows 资源管理器并检查文本文件是否存在。如果文件存在,则继续分步执行脚本的其余部分。如果文件不存在,则我们就已找到了一处错误。

那怎么在 Script Debugger 中分步执行代码呢?实际上这是非常容易的:在调试器中装载脚本,然后按 F8 键。每次按 F8 键时,调试器将执行一行代码,跳到 一行代码,然后等待您再次按 F8 键。(顺便说一句,如果您不喜欢使用键盘,您也可以从 Debug(调试)菜单中选择 Step Into(单步执行))。一直按 F8 键,直至到达脚本的结尾。您也可以从当前行开始运行脚本的其余部分。为此,请按 F5 键或者从 Debug 菜单中选择 Run(运行)。

警告。 假定您调试的脚本从事件日志中检索事件,并且假定这些事件日志中有 5,000 个事件。在分步执行使用 For Each 循环的代码时一定要小心;脚本不只运行该循环一次,它将运行 5,000 次,为集合中的每一项分别运行一次。对于此类情况,您可能只需要运行循环一次或两次(只为确认循环运行是否正常),然后按 F5 键以运行脚本的其余部分。或者,您也可能需要使用断点,我们稍后将对其进行介绍。

返回页首返回页首
文章共9页,当前在第3页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] 8 :
相 关 文 章
相 关 软 件
没有相关下载
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.