< Indietro | Avanti >

Gestione degli errori Perl

È possibile utilizzare l'istruzione Perl eval nel codice, per gestire gli errori.

Quando nelle routine dell'API Rational ClearQuest si verificano condizioni impreviste, viene generata un'eccezione. Se l'eccezione non viene rilevata 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 rilevare e gestire le eccezioni.

Utilizzare i metodi standard per la gestione degli errori Perl utilizzando l'istruzione eval Perl per analizzare gli errori. Utilizzare la sintassi seguente:
eval {immettere le istruzioni che si desidera monitorare}; 
Durante il runtime, se il motore Perl rileva un errore in un'istruzione nel blocco eval, viene saltato il resto del blocco eval e $@ viene impostato sul testo di errore corrispondente. Ad esempio:
eval{$objectName->MethodName();};
 if ($@) 
     { 
       print "Error using MethodName method. Error: $@\n"; 
     } 
else 
     {
      # continuare senza errore ... 
     } 

Diverse funzioni, che in genere si prevede abbiano esito negativo, fanno eccezione. In particolare, le funzioni di convalida e impostazione di campi restituiscono indicazioni di errori anziché generare eccezioni. Per ulteriori informazioni, consultare Verifica errori e convalida.

Verifica errori

Per molti metodi e proprietà dell'API Rational ClearQuest, è necessario esaminare il valore di restituzione per confermare se la chiamata restituisce o meno un errore.

Per le chiamate alle funzioni che restituiscono un oggetto, è necessario controllare se l'oggetto specificato esiste (condizione if). Ad esempio, se viene richiamato il metodo Item di un oggetto di raccolta, se l'oggetto specificato non si trova nella raccolta, il valore di restituzione è un oggetto indefinito per Perl. È possibile utilizzare
if (!defined($result)) { ... };
per rilevare questa condizione.

Per le chiamate alle funzioni che dispongono di un valore di restituzione Stringa di errore, il valore è vuoto se non ci sono errori oppure è una stringa contenente la descrizione dell'errore. È possibile esaminare il risultato della chiamata del metodo e, se il valore non è vuoto, è possibile richiamare l'errore in una variabile, come un valore Stringa.

Ad esempio, il metodo SetFieldValue dell'oggetto Entity è definito affinché restituisca un valore Stringa. Restituisce una Stringa vuota se le modifiche al campo sono consentite e l'operazione riesce, altrimenti, se l'operazione non riesce, questo metodo restituisce una Stringa contenente una spiegazione dell'errore.

Se viene specificato un campo non corretto, viene restituito un errore. Ad esempio:
The Defect SAMPL00000123 does not have a field named "Invalid_field". 
È anche possibile scrivere un codice per gestire potenziali errori di eccezione. Rilevare le eccezioni eseguendo i metodi API in un'istruzione eval{}. Ad esempio,
# rilevare eccezioni e stringhe di messaggi di errore 
# ... 
eval { $RetVal = ${$CQEntity}->Validate(); }; 
# informazioni sull'eccezione in $@ 
# RetVal è una stringa vuota o contiene una stringa messaggio di errore 
if ($@){ 
        print "Exception: '$@’\n"; 
        # altra gestione eccezione va qui... 
        } 
if ($RetVal eq ""){
        # riuscito... 
        } 
else { 
        # non riuscito... 
        # restituisce la stringa messaggio qui... 
        }
< Indietro | Avanti >

Feedback