When routines in the Rational® ClearQuest® API encounter unexpected conditions, they throw an exception. If the exception is not caught by the calling program, the language interpreter terminates your program. If there is any possibility that the Rational ClearQuest API call will fail, you should catch and handle exceptions.
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 ...You can use a GoTo statement for Visual Basic but not for VBScript. For example:
' VB exception handling example On Error GoTo HandleError fieldValue = record.GetFieldStringValue(fieldname) ... HandleError: StdOut "Got error number " & Err.Number & ":" StdOut Err.Description
Several functions which are expected to commonly fail are exceptions to this. In particular, validate and set field functions return error indications instead of throwing exceptions. For more information, see "Error checking and validation".
For VBScript, some of the properties and methods return a VARIANT value which is supposed to contain an array of objects or Strings. If the array contains zero elements, then the VARIANT value would simply have a value of EMPTY. An empty value is not considered to be an array, and if you try to iterate over something that's not an array, it is considered a type-mismatch. You should check such a return value with the IsEmpty or IsArray functions before applying any array-related function on it. For example:
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