VBScript - Fehlerbehandlung

Wenn die Routinen in der Rational ClearQuest-API unerwartete Bedingungen feststellen, wird eine Ausnahmebedingung ausgelöst. Wenn die Ausnahmebedingung nicht vom aufrufenden Programm abgefangen wird, beendet der Sprachinterpreter das Programm. Besteht die Möglichkeit, dass der Aufruf der Rational ClearQuest-API fehlschlägt, sollten Ausnahmebedingungen abgefangen und bearbeitet werden.

Verwenden Sie die Standardmethode zur Behebung von VBScript-Fehlern(VBScript-Anweisung On Error). Dann können Sie das Fehlerobjekt Err überprüfen und jederzeit eine Fehleranalyse durchführen. Beispiel:
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
	...
Eine Anweisung GoTo können Sie bei Visual Basic verwenden, jedoch nicht bei VBScript. Beispiel:
' VB exception handling example
	On Error GoTo HandleError
	fieldValue = record.GetFieldStringValue(fieldname)
	...
	HandleError:
	StdOut "Got error number " & Err.Number & ":"
	StdOut Err.Description

Einige Funktionen, die erwartungsgemäß häufig fehlschlagen, bilden hierzu eine Ausnahme. Insbesondere validate- und set field-Funktionen geben Fehleranzeiger an Stelle von Ausnahmebedingungen zurück. Weitere Informationen finden Sie im Abschnitt "Fehlerprüfung und Validierung".

VARIANT-Rückgabewerte bearbeiten

Bei VBScript geben einige Eigenschaften und Methoden einen VARIANT-Wert zurück, der ein Array von Objekten oder Zeichenfolgen enthalten sollte. Wenn das Array Nullelemente enthält, lautet der VARIANT-Wert EMPTY. Ein leerer Wert wird nicht als Array/Matrix angesehen, und wenn Sie eine Iteration für eine Struktur durchführen, die kein Array ist, wird dies als fehlende Typenübereinstimmung interpretiert. Überprüfen Sie einen solchen Rückgabewert mit der Funktion IsEmpty oder IsArray, bevor Sie auf Arrays bezogene Funktionen darauf anwenden. Beispiel:

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