Gestione degli errori VBScript

Quando le routine nell'API Rational ClearQuest rilevano condizioni non previste, viene generata un'eccezione. Se l'eccezione non viene accettata dal programma chiamante, il programma di interpretazione del linguaggio termina il programma. Se c'è una possibilità che la chiamata dell'API Rational ClearQuest non riesca, è necessario accettare e gestire le eccezioni.

Utilizzare i metodi standard per la gestione degli errori VBScript utilizzando l'istruzione VBScript On Error. È quindi possibile esaminare l'oggetto errore Err e analizzare gli errori in qualsiasi momento. Ad esempio:
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
	...
È possibile utilizzare un'istruzione GoTo per Visual Basic ma non per VBScript. Ad esempio:
' VB exception handling example
	On Error GoTo HandleError
	fieldValue = record.GetFieldStringValue(fieldname)
	...
	HandleError:
	StdOut "Got error number " & Err.Number & ":"
	StdOut Err.Description

Diverse funzioni che, solitamente, non riescono correttamente sono eccezioni. In particolare, convalidare e impostare le funzioni campo che riportano indicazioni di errore invece di generare eccezioni. Per ulteriori informazioni, consultare "Verifica errori e convalida".

Gestione dei valori di ritorno VARIANT

Per VBScript, alcune proprietà e metodi riportano un valore VARIANT che dovrebbe contenere un array di oggetti o stringhe. Se l'array non contiene elementi, il valore VARIANT avrà semplicemente un valore di EMPTY. Un valore vuoto non viene considerato come array e se si tenta di iterare su qualcosa che non sia un array, viene considerato una discordanza di tipo. È necessario verificare tale valore con le funzioni IsEmpty o IsArray prima di applicarvi qualsiasi funzione relativa all'array. Ad esempio:

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