技术开发 频道

弃VBScript而选Jscript的八大理由

理由八:JScript有更好的异常处理机制

    VBScript的异常处理机制非常简陋,它由两个程序声明组成:On Error Resume Next禁用了默认的错误处理机制,而On Error GoTo 0则启用了默认的错误处理机制。如果你禁用了默认的错误处理句柄后,一旦出现错误,VBScript更新Err对象的属性。这意味着假若你有一系列的可能引发错误的声明,你将不得不在每一个声明后面检查Err对象,只有这个Err对象的Number属性是0的时候,才能继续下面的代码。如下面的代码所示:

On Error Resume Next Dim FSO, TS Set FSO = CreateObject("Scripting.FileSystemObject") Set TS = FSO.CreateTextFile("C:\Logfile.csv") If Err = 0 Then TS.WriteLine("LastName,FirstName,Email") If Err = 0 Then LogData End If TS.Close() End If

    上面的代码试图创建一个文本文件;假若它成功的话,然后它试图写一行文本到文件中。如果WriteLine方法成功执行的话,上面的脚本将只执行LogData函数,如果你需要检查多重错误的话,要想跟踪脚本的逻辑是非常困难的。

    相比之下,JScript使用基于块的异常处理机制,使你可以很简单的处理错误,而不用在每一个声明中检查错误。与上面的代码等效的JScript代码如下:

var FSO, TS; FSO = new ActiveXObject("Scripting.FileSystemObject"); try { TS = FSO.CreateTextFile("C:\Logfile.csv"); TS.WriteLine("LastName,FirstName,Email"); logData(); TS.Close(); } catch(err) { // Put error-handling code here }

    这个try{...}块说明了可能会产生错误的代码。如果一个错误出现的话,脚本的执行则跳到catch块中。err变量将包含一个包含详细错误信息的对象。

    JScript还支持一个finally块,它一般位于try和catch块后面,它包含在try程序块(还有catch块,如果错误出现的话)后一定要执行的代码。举个例子说,它可以被脚本来释放某个资源,无论是否出现一个错误。

结论

    JScript内置在操作系统中的最好的Windows活动语言。在本篇文章中,我列举出了八个理由来说明为什么它比VBScript要强大。我认为,Windows管理员应该好好学习这个强大的语言。

http://www.windowsdevcenter.com/pub/a/windows/2007/06/19/eight-reasons-windows-administrators-should-learn-jscript-instead-of-vbscript.ht?page=2

0
相关文章