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