Rational® ClearQuest® API のルーチンによって予期しない状態が検出された場合、そのルーチンから例外がスローされます。例外が呼び出し側プログラムでキャッチされない場合は、言語インタープリタによりプログラムが終了させられます。Rational ClearQuest API 呼び出しが失敗する可能性がある場合は、例外をキャッチして処理する必要があります。
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
...
Visual Basic では GoTo ステートメントを使用できますが、VBScript では使用できません。例を次に示します。' VB exception handling example
On Error GoTo HandleError
fieldValue = record.GetFieldStringValue(fieldname)
...
HandleError:
StdOut "Got error number " & Err.Number & ":"
StdOut Err.Description
これに対する例外として、一般的に失敗することが予期されている関数がいくつかあります。特に、フィールドを検証する関数とフィールドを設定する関数は、例外をスローする代わりにエラー通知を戻します。詳しくは、「エラーのチェックと検証」を参照してください。
VBScript の場合、一部のプロパティとメソッドは VARIANT 値を戻します。この値には、オブジェクトまたは文字列の配列が含まれます。配列のエレメントがゼロの場合、VARIANT 値は単に EMPTY となります。空の値は配列とみなされないため、配列でない値を繰り返そうとすると、タイプ不一致とみなされます。このような戻り値は、配列関連の関数を適用する前に、IsEmpty 関数または IsArray 関数を使用してチェックすることをお勧めします。例を次に示します。
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