Pour de nombreuses méthodes et propriétés de l'API Rational ClearQuest, vous devez vérifier la valeur de retour afin de contrôler si l'appel renvoie une erreur.
if (!defined($result)) { ... };
pour détecter cette condition.Par exemple, l'objet Entity de la méthode SetFieldValue est défini pour renvoyer une valeur String. Il renvoie une chaîne (String) vide si les changements de la zone sont autorisés et si l'opération aboutit. Si l'opération échoue, cette méthode renvoie une chaîne (String) contenant une explication de l'erreur.
Pour capturer l'erreur, le code doit vérifier la valeur de retour. Exemple :
strRetVal = SetfieldValue ("Invalid_field", "Invalid value")
If "" <> strRetVal Then
REM handle the error
End If
Si une zone incorrecte est indiquée, une erreur est renvoyée. Exemple :
The Defect SAMPL00000123 does not have a field named "Invalid_field" (L'incident SAMPL00000123 ne comporte pas de zone nommée "Invalid_field").
# capturer les exceptions et les chaînes de message d'erreur
# ...
eval { $RetVal = ${$CQEntity}->Validate(); };
# Les informations sur l'EXCEPTION se trouvent dans $@
# RetVal est une chaîne vide ou contient une chaîne de message d'erreur
if ($@){
print "Exception: '$@'\n";
# aucun autre traitement d'exception...
}
if ($RetVal eq "")
{# réussite...
}
else {
# échec...
# renvoyer la chaîne du message ici...
}
Pour VBScript, utilisez une instruction On Error pour détecter les exceptions. Pour plus d'informations, voir Traitement des erreurs VBScript et Traitement des erreurs Perl. La section Exemple de crochet de validation d'action fournit des exemples de traitement des erreurs et des exceptions lors de l'appel de la méthode Commit.