Err对象包括两个方法,可以用来操作Err对象见表11-2。
表11-2 Err 对象的方法
1.Clear 方法
Clear 方法用来从一个Err 对象中删除一个错误,即把这个错误当作没有发生一样。把例11-2 修改一下,来看看结果会有什么变化。代码见例11-5。
例11-5
通过浏览器运行该程序,输出结果就是“No Problem”,如图11-6所示。
图11-6 利用Err 对象的Clear 方法的结果
由于该程序只产生了一个错误(除零错),因此当执行了Clear 方法后,就不会再执行错误检查代码,即程序认为没有了错误。所以在浏览器中出现了“No Problem”的结果。
2.Raise 方法
Raise则提供了产生自定义错误的方法。有两个原因,可能在程序中需要使用该方法:
当某个错误出现时,希望产生一个自定义的错误检查在程序代码中发生的问题。比如,希望有一个错误来报告与数据库连接失败,然后在程序中测试如何响应这个错误。
当希望从程序的一个过程中返回一个定制的错误时需要使用。比如,在程序中有一个过程,该过程从一个全名中提取名字,可能会通过检测全名中的空格来寻找名字,因为在空格前的所有内容都认为是一个人的名字,如果没有找到空格,就希望返回一个错误。
Raise 方法的语法如下:
Raise 方法的各个参数描述见表11-3。
表11-3 Raise 方法的参数
(续表)
(www.xing528.com)
除了Number之外,所有参数都是可选的。如果使用Raise而不指定一些参数,并且Err 对象的属性设置含有未清除的值,则可视这些值为错误的值。
下面的代码建立一个函数,该函数可以从一个全名中解析出名字,要求是姓名之间要有空格,而且名在前,姓在后。如果姓名之间没有空格,即在全名中没找到空格,就认为只有名没有姓,全名不完整,就会产生一个定制错误。如果姓名之前有空格,就返回名字。
例11-6:
这个程序由于姓名之间没有空格,因此必然会出现程序中定制的错误,如图11-7所示。
图11-7 利用Err 对象的Raise 方法定制一个错误
如果把例11-6中语句Response.write FirstNam(e"Tom")中的“Tom”改为“Tom Jack”,也就是说再加一个姓,代码见例11-7。
例11-7:
这时,程序就不会出现定制的错误,通过浏览器可以看到输出的名字,如图11-8所示。
图11-8 解析出名字的结果
下面对例11-6和例11-7部分语句进行解释。
Option Explicit 语句和On Error Resume Next语句表示编译器如果有错误,就继续执行下一行语句。
Response.Write FirstName("Tom")语句表示调用FirstName函数,参数为“Tom”,然后把输出结果写到浏览器上。
接下面的IF代码块,是处理错误的代码,并把发生的错误信息写到浏览器上。
这个程序中,最重要的是自定义的函数FirstName。
在这个函数中使用InStr 函数来检查参数FullName 中有没有空格,如果没有空格,InStr函数将会返回零,然后进入IF 代码块中,使用Err 对象的Raise 方法建立一个定制的错误:错误代码为vbObjectError+22,其中vbObjectError 是一个VBScipte 中的常数,错误的程序名为"MyFunction.FirstName",错误的类型和说明为"The FullName parameter of this function must contain a space!",这里没有提供帮助文件和帮助主题。
如果没有错误,则名字从全名中解析出来,全名中在空格之后的字符都被丢掉。
例11-6 传递给函数的参数中没有空格,所以错误将发生,这个提示可以从图11-7中看出,例11-7 传递给函数的参数中有空格,所以将把名字输出到浏览器,这点可以从图11-8看出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。