Manejo de errores de VBScript

Cuando las rutinas de la API de Rational ClearQuest encuentran condiciones inesperadas, lanzan una excepción. Si la excepción no se captura en el programa de llamada, el intérprete de lenguaje termina el programa. Si existe cualquier posibilidad de que la API de Rational ClearQuest falle, debe capturar y gestionar las excepciones.

Utilice los medios estándar de manejo de errores de VBScript utilizando la sentencia VBScript On Error. A continuación, puede examinar el objeto de error Err y analizar los errores en cualquier momento. Por ejemplo:
On Error Resume Next
Err.Clear
' perform some operation here...
if  Err.Number <> 0  then   
   ' An exception occurred
    StdOut "Exception:" & vbCrLf &_
        "    Error number: " & Err.Number & vbCrLf &_
        "    Error description: '" & Err.Description & vbCrLf
	...
Puede utilizar una sentencia GoTo para Visual Basic, pero no para VBScript. Por ejemplo:
' VB exception handling example
	On Error GoTo HandleError
	fieldValue = record.GetFieldStringValue(fieldname)
	...
	HandleError:
	StdOut "Got error number " & Err.Number & ":"
	StdOut Err.Description

Varias funciones que se espera que habitualmente fallen son excepciones de esto. En concreto, valide y establezca indicaciones de error de retorno de funciones de campo, en lugar de lanzar excepciones. Para obtener más información, consulte el apartado "Comprobación y validación de errores".

Gestión de los valores de retorno VARIANT

Para VBScript, algunas de las propiedades y métodos devuelven un valor VARIANT que se supone que contiene una matriz de objetos o series. Si la matriz no contiene ningún elemento, el valor VARIANT simplemente tendrá un valor EMPTY. Un valor vacío no se considera una matriz, y si intenta iterar sobre algo que no es una matriz, se considera una falta de coincidencia de tipo. Debe comprobar este valor de retorno con las funciones IsEmpty o IsArray antes de aplicar cualquier función relacionada con la matriz. Por ejemplo:

fieldObjs = GetInvalidFieldValues
' Check the return value
If (IsArray(fieldObjs)) Then 
   For Each fieldInfo In fieldObjs
      fieldValue = field.GetValue
      fieldName = field.GetName
      currentsession.outputdebugstring "This is the fieldvalue " & fieldvalue
   Next
Else
      currentsession.outputdebugstring "This is not an array or it is empty" 
End If 

Feedback