< Vorherige Lektion | Nächste Lektion >

Fehlerbehandlung mit Perl

Sie können die Perl-Anweisung eval in Ihrem Code verwenden, um Fehler zu behandeln.

Wenn die Routinen in der Rational-ClearQuest-API unerwartete Bedingungen feststellen, wird eine Ausnahmebedingung ausgegeben. Wird die Ausnahmebedingung nicht vom aufrufenden Programm abgefangen, 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 zur Behebung von Perl-Fehlern die Standardmethode zur Fehleranalyse, nämlich die Perl-Anweisung eval. Verwenden Sie die folgende Syntax:
eval {zu überwachende Anweisungen}; 
Wenn die Perl-Engine zur Laufzeit einen Fehler in einer Anweisung des eval-Blocks feststellt, wird der Rest des eval-Blocks übersprungen und $@ auf den entsprechenden Fehlertext gesetzt. Beispiel:
eval{$objectName->MethodName();};
 if ($@) 
     { 
       print "Error using MethodName method. Error: $@\n"; 
     } 
else 
     {
      # weiter ohne Fehler ...
     } 

Einige Funktionen, die erwartungsgemäß häufig fehlschlagen, bilden hierzu eine Ausnahme. Insbesondere Funktionen für das Validieren (Validate) und das Setzen von Feldern (SetField) geben Fehleranzeiger zurück, anstatt Ausnahmebedingungen auszulösen. Weitere Informationen finden Sie im Abschnitt "Fehlerprüfung und Validierung".

Fehlerprüfung

Bei vielen Methoden und Eigenschaften der Rational-ClearQuest-API müssen Sie den Rückgabewert prüfen, um festzustellen, ob der Aufruf einen Fehler zurückgibt.

Bei Aufruf von Funktionen, die ein Objekt zurückgeben, müssen Sie die Bedingung überprüfen, wenn das angegebene Objekt nicht vorhanden ist. Wenn Sie beispielsweise die Methode Item eines Collection-Objekts aufrufen und das angegebene Objekt nicht in der Sammlung vorhanden ist, ist der Rückgabewert ein undefiniertes Objekt für Perl: Sie können
if (!defined($result)) { ... };
verwenden, um diese Bedingung zu ermitteln.

Bei Aufruf von Funktionen, deren Rückgabewert eine fehlerhafte Zeichenfolge ist, ist der Wert bei Nichtvorhandensein eines Fehlers entweder ein Leerwert oder eine Zeichenfolge mit einer Beschreibung des Fehlers. Sie können das Ergebnis des Methodenaufrufs überprüfen, und wenn der Wert nicht leer ist, können Sie den Fehler in einer Variablen als Zeichenfolgewert abrufen.

Die Methode SetFieldValue des Entitätsobjekts ist beispielsweise so definiert, dass ein Zeichenfolgewert zurückgegeben wird. Wenn die Änderungen am Feld zulässig sind und die Operation erfolgreich ist, wird eine leere Zeichenfolge zurückgegeben. Schlägt die Operation fehl, wird eine Zeichenfolge mit einer Erläuterung des Fehlers zurückgegeben.

Wenn ein falsches Feld angegeben ist, wird ein Fehler zurückgegeben. Beispiel:
The
Defect SAMPL00000123 does not have a field named "Invalid_field". 
Ferner sollte Code zur Bearbeitung potenzieller Ausnahmebedingungsfehler geschrieben werden. Ausnahmebedingungen können durch Ausführung von API-Methoden innerhalb einer eval{}-Anweisung abgefangen werden. Beispiel:
# Zeichenfolgen von Ausnahmebedingungen und Fehlernachrichten abfangen
# ... 
eval { $RetVal = ${$CQEntity}->Validate(); }; 
# Ausnahmebedingungsinformation ist in $@
# RetVal ist entweder eine leere Zeichenfolge oder enthält eine Fehlernachrichtenzeichenfolge
if ($@){ 
        print "Exception: '$@’\n"; 
        # Weitere Ausnahmebedingungsbehandlung erfolgt hier...
        } 
if ($RetVal eq ""){
        # Erfolg...
        } 
else { 
        # Fehler...
        # Nachrichtenzeichenfolge hier zurückgeben...
        }
< Vorherige Lektion | Nächste Lektion >

Feedback