加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【转】常见 VBScript 运行时错误

(2008-04-10 16:24:02)
标签:

vbscript

运行时错误

分类: 学习资料
VBScript 运行时错误
 
如果 VBScript 脚本执行系统无法实施的操作,则会产生 VBScript 运行时错误。只有在运行脚本、为变量表达式赋值或分配内存时,才会产生 VBScript 运行时错误。
 
错误编号:429  描述ActiveX 部件无法创建对象
详细信息:由于对象类未在系统注册表中注册或者是一个或多个相关的动态链接库无效(DLLs), VBScript 5.5运行时无法初始化对象。另外一种可能情况是,由于未找到或是已经损坏,对象所需的DLL不可用。

要纠正该错误

  • 确保所有相关的DLLs有效。例如,数据存取对象(DAO)所需的DLLs在不同的平台下是不同的。你可能不得不返回到安装程序查找该对象。
  • Internet Explorer可能试图创建对象,但是在Internet Explorer中没有正确的安全许可。重置Internet Explorer 安全设置并重试。
 
错误编号:507  描述发生异常
详细信息:脚本调用COM对象,然后产生异常。

要纠正该错误

  • 除非该调用由 Raise 方法产生,请与产生错误的COM对象开发人员联系。
  • 请与微软产品服务联系报告出现错误消息的情况。
 
错误编号:449  描述参数不可选
详细信息:调用过程但是参数数量错误。传递给过程的参数的数量必须与过程定义的参数数量相同。

要纠正该错误

  • 检查函数符号确保提供了所有必须的参数。
 
错误编号:17  描述无法执行请求的操作
详细信息:当主机使脚本引擎中断时无法继续执行脚本。主机未指定明确的返回错误代码。

要纠正该错误

  • 该错误的解决与主机有关。
 
错误编号:430  描述类不支持自动化
详细信息:试图操作一个并不支持自动化的对象属性或方法。可以创建并将指针传递给不支持自动化的对象,但是不能获取它的属性和方法。

要纠正该错误

  • 检查创建对象应用程序的文档中关于该类自动化使用的限制。

注意 对象可能已经通过使用CreateObject 被创建,但可能已经通过主机对象模型被引入。

 
错误编号:506  描述类未被定义
详细信息:引用未定义(通过NewSet语句)的类。

要纠正该错误

  • 确保在引用类之前已经定义。
 
错误编号:11  描述被零除
详细信息:创建一个试图将数字被零除的表达式。被零除得到无穷大(不可用)结果。

要纠正该错误

  • 检查表达式的输入或大小写错误。
 
错误编号:48  描述加载 DLL 错误
详细信息:应用程序引用了一个无法找到的DLL,一个DLL可能引用了另一个无法找到的DLL。

要纠正该错误

  • 确保DLL存在。
  • 使用全路径名引用DLL。
  • 获得被引用的DLL并使其对其他DLL有效。
 
错误编号:5020  描述在正则表达式中需要 ')'
详细信息:试图创建常规的嵌套表达式,但未包含“)”。在正则表达式中括号有几个目的。首先,它将分离的项组成为单个子表达式,所以项目可以通过*,+,?等等来当作一个单元来处理。

要纠正该错误

  • 在常规的嵌套表达式中添加右(闭)括号“)”。
 
错误编号:5019  描述在正则表达式中需要 ']'
详细信息:试图为正则表达式匹配创建一个字符类,但未包含右括号。将单独的字符组合放到方括号里可以将其装配到字符类中。例如, /[abc]/ 匹配字母“a”,“b”,或“c”中任意一个。

要纠正该错误

  • 在正则表达式中添加右括号。
 
错误编号:432  描述在自动化操作中未找到文件名或类名
详细信息:使用GetObject 函数,但是将一个不可识别的类或文件名作为参数。GetObject 函数要求包含要获取的对象的文件的完整的路径和名称,或者是在系统中注册过的类名称。

要纠正该错误

  • 检查名称的拼写错误,然后重试。
  • 确保class 参数的名称与在系统中注册的相匹配。
 
错误编号:92  描述For 循环未初始化
详细信息:在脚本中执行跳到For...Next 循环中间的结果。由于For...Next 循环计数必须被初始化所以产生错误。下面演示了一个For...Next 循环的正确结构。
For counter = start To end [Step step]
    [statements]
    [Exit For]
    [statements]
Next

要纠正该错误

  • 移去跳转至For...Next 循环的语句。
  • 确保For...Next循环包含了所有必须的部分。
 
错误编号:5008  描述非法赋值
详细信息:在一个赋值操作的左边试图使用一个只读标识符。不能对一个只读标识符赋值。

要纠正该错误

  • 只在一个赋值操作的右边使用只读标识符。
 
错误编号:51  描述内部错误
详细信息:发生内部错误。

要纠正该错误

  • 除非这是由Raise 方法产生,请与微软产品服务联系报告出现错误消息的情况。
 
错误编号:505  描述无效或不合格的引用
详细信息:试图对不止一个对象使用With语句。With语句只能被非空对象使用。下面演示了一个With 块的正确结构。
With object
   statements
End With

要纠正该错误

  • With 语句指定一个对象。
 
错误编号:481  描述无效图片
详细信息:试图加载一个无法识别格式的图像。有效格式包括位图(*.bmp),图标(*.ico),以及Windows 元文件(*.wmf)。

要纠正该错误

  • 确保要加载的图像文件的格式是有效的。
 
错误编号:5  描述无效过程调用或参数
详细信息:在过程调用中传递了一个无效参数。这可能是由于参数超出范围,或包含无效数据。另外,有可能在不适当的时间对过程进行了调用。

要纠正该错误

  • 验证传递给过程的参数是有效的。
  • 验证在适当的时间调用函数。
 
错误编号:5021  描述字符集越界
详细信息:试图使用无效字符创建正则表达式。正则表达式是由字母数字和元字符组成的。

要纠正该错误

  • 仅仅使用有效正则表达式字符来组成正则表达式
 
错误编号:94  描述非法使用 Null
详细信息:试图获得一个为NullVariant变量的值。你只能获得包含有效值的Variant 变量的值。Null 是一个 Variant 一个用来指示一个数据项不包含任何有效数据的子类型。

要纠正该错误

  • 确保变量包含有效数据。
 
错误编号:448  描述未找到命名参数
详细信息:调用一个过程并指定一个特别的参数,但是过程未被定义为接受以为名称的参数。除非在过程定义中出现,一个命名参数不能在过程调用中使用。

要纠正该错误

  • 检查参数名称是否正确拼写,然后再试着调用过程。
 
错误编号:447  描述对象不支持当前的区域设置
详细信息:试图操作一个不支持当前区域设置的对象。区域设置是和给定语言以及国家/地区相对应的一系列信息。本地影响预定义程序项的语言和本地特定设置。以下两种情况时本地信息很重要:
  • code locale 影响语言项例如关键词,并且定义本地特定设置例如小数和列表分割符,日期格式和字符排列顺序。
  • system locale 影响本地相关的功能执行。例如,当显示数字或者将字符串转换为日期时。使用操作系统提供的控制面板工具来设定系统。

要纠正该错误

  • 检查对象支持的区域设置。
 
错误编号:445  描述对象不支持此操作
详细信息:试图引用该对象不支持的一个方法或属性。不是所有的对象支持所用的操作。

要纠正该错误

  • 检查属性和方法以确保没有打字错误。
  • 参见对象的文档获取更多的信息。
 
错误编号:438  描述对象不支持该属性或方法
详细信息

对该自动化对象指定了一个并不存在的属性或方法。不是所有的对象都支持所有的属性和方法。

要纠正该错误

  • 检查属性和方法以确保没有打字错误。
  • 参见对象的文档获取更多的信息。  

 

错误编号:451  描述对象不是一个集合
详细信息:试图对一个不是 Collection 类型的对象进行只对 Collection 对象有效的操作。有些属性、方法和操作仅可应用于 Collection 对象。Collection 对象是包含一组互相关联的对象的一种对象。一旦集合中发生了改变,一个对象在 Collection 对象中的位置也会发生改变;因此,Collection 对象中的任何一个对象的位置都可能变化。

要纠正该错误

  1. 检查对象或属性名称的拼写。
  2. 验证对象是一个Collection 对象。
  3. 查看用来向集合中添加该对象的 Add 方法,确保语法正确且任何标识符的拼写都正确。

 

错误编号:504  描述对象不能安全创建
详细信息:试图使用一个未被标识为安全创建的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害操作(例如操作硬盘)的对象是不安全的。

例如,使用作为客户端的Microsoft Internet Explorer 运行 FileScriptingObject 是不安全的,但是可以在带有Windows Script Host的本地机器使用该对象。

要纠正该错误

  • 确保在使用一个安全的对象。
  • 与对象开发者联系看是否为安全版本。
  • 阅读对象文档发现该对象是否安全。

 

错误编号:503  描述对象不能安全初始化详细信息

试图使用未被标识为初始化安全的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害操作(例如操作硬盘)的对象是不安全的。

例如,使用作为客户端的Microsoft Internet Explorer 运行 FileScriptingObject 是不安全的,但是可以在带有Windows Script Host的本地机器使用该对象。

要纠正该错误

  • 确保在使用一个安全的对象。
  • 与对象开发者联系看是否为安全版本。
  • 阅读对象文档发现该对象是否安全。

 

错误编号:502  描述脚本对象不安全
详细信息:试图使用未被标识为脚本安全的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害操作(例如操作硬盘)的对象是不安全的。

例如,使用作为客户端的Microsoft Internet Explorer 运行 FileScriptingObject 是不安全的,但是可以在带有Windows Script Host的本地机器使用该对象。

要纠正该错误

  • 确保在使用一个安全的对象。
  • 与对象开发者联系看是否为安全版本。
  • 阅读对象文档发现该对象是否安全。

 

错误编号:424  描述:需要对象
详细信息:提供的对象无效(或无法认为是一个对象)。对属性和方法的引用需要一个显式的对象限定符。

要纠正该错误

  • 提供一个对象限定符。
  • 检查对象限定符的拼写。

 

错误编号:91  描述:未设置对象变量
详细信息:试图使用无效对象的对象属性。如果遗漏了 Set语句,将在对象引用产生错误。

要纠正该错误

  • 为对象变量指定一个引用。

 

错误编号:7  描述:内存不足
详细信息:分配与该计算机有效内存一样多的内存。这可能是一个动态分配数组增长得太大,或者是对象实例数目过多。

要纠正该错误

  • 使用Erase语句来重新分配动态数组的储存空间。
  • 使用ReDim语句来重新分配储存空间。
  • 关闭任何已经打开、不必需的应用程序,文件或者源文件。

 

错误编号:28  描述:堆栈溢出

详细信息:过程嵌套太深。每次代码从一个过程跳到另一个过程,本地变量的内容被放到堆栈中。堆栈是一个大小随着要求执行的脚本动态增长和缩小的内存工作区域。

要纠正该错误

  • 检查没有嵌套很深的过程。
  • 确保递归(重入)过程没有经常的调用自身。
  • 确保递归过程被正常终止。

 

错误编号:14  描述字符串空间溢出
详细信息:试图创建字符串对象时系统内存被用尽。这可能是因为动态分配数组越来越大或对象实例的数目过大。

要纠正该错误

  • 使用 Erase 语句来重新分配动态数组的储存空间。
  • 使用 ReDim 语句来重新分配储存空间。
  • 关闭任何已经打开、不必需的应用程序,文件或者源文件。

 

错误编号:6  描述:溢出
详细信息:试图赋给变量的赋值太大,这是因为:

  • 赋值,计算或者数据类型转换结果很大以至于不能代表此种类型变量值的范围。
  • 属性赋值超出了属性所能接受的最大值。
  • 整数类型数字的计算结果大于一个整数。

要纠正该错误

  • 将值赋给一个较大取值范围的变量类型。
  • 确保赋值符合属性范围。

 

错误编号:35  描述未定义 Sub 或 Function
详细信息:试图调用一个不存在的过程。

要纠正该错误

  • 检查过程的拼写确保输入正确。

 

错误编号:9  描述下标越界
详细信息:要访问的数组中元素数目比期望的少。例如试图从一个定义为10个元素的数组中访问到11个元素。.

要纠正该错误

  • 确保你的代码中包含检察元素是否越界的边界。
  • 重新定义一个更大的数组大小至需要的维数

 

错误编号:5017  描述正则表达式中的语法错误
详细信息:搜索字符串的结构违背了VBScript正则表达式中的一个或多个语法规则。

要纠正该错误

  • 保证常规的搜索字符串的表达式符合Perlde的表达语法。

 

错误编号:462  描述远程服务器不存在或者不能访问
详细信息:用CreateObject函数来建立一个远程机器的对象,但是调用失败,这是因为无法访问远程服务器或者没有包含特定的类。

要纠正该错误

  • 检验远程服务器的名字是否正确。
  • 检验远程服务器的 DCOM 可用。
  • 使用 dcomcnfg 验证安全权限是否允许建立对象。

 

错误编号:10  描述该数组为定长的或者临时被锁定
详细信息:试图用 ReDim 函数来改变一个定长数组的元素数目。动态数组或者 Variant 变量内的数组可以被暂时的锁定。

要纠正该错误

  • 如果在过程内部定义数组,用 ReDim 函数将其从静态变为动态。
  • 如果在模块水平上说明数组,不要指定数组中元素的数目。

 

错误编号:13  描述:类型不匹配
详细信息:试图比较不相容数据类型的值。例如,比较一个字符串和一个数值。

要纠正该错误

  • 当进行比较时,要确保数据类型相同。
  • 用一个的数据类型来计算另一个的值,然后重新比较。

 

错误编号:508  描述:错误的数量词
详细信息:当构造正则表达式的搜索模式时,没有正确的说明匹配的字符串。

要纠正该错误

  • 确保搜索模式是正确构造的。

 

错误编号:500  描述:变量未定义
详细信息:在脚本开始处用Option Explicit 语句,后来又使用一个未被说明的变量名称。当使用Option Explicit 语句时,必须用DimPrivatePublic或者ReDim语句显式地说明所有的变量。

要纠正该错误

  • 使用Option Explicit 语句时, 确保用Dim, Private, Public, or ReDim语句定义了所有的变量。

 

错误编号:458  描述变量使用了 VBScript 不支持的自动化类型
详细信息:试图使用类型库或者对象库中不被支持的数据类型,任何一门编程语言都不能使用类型库或对象库中的所有变量。

要纠正该错误

  • 只使用VBScript识别的变量类型。

 

错误编号:450  描述错误的参数个数或无效的参数属性值
详细信息

调用过程时如果:

  • 错误的过程名称,

或者,

  • 过程中参数数目错误,

或者,

  • 参数类型错误。

传递给过程的参数数目必须与过程定义中的参数数目相符。

要纠正该错误

  • 检查以确保传递给过程的参数列表与过程定义或声明中的相符。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有