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.
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".
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