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