Try and catch block con notifica delle eccezioni

03/04/2006

Nel precedente capitolo di questa breve serie di articoli dedicati all' Exception Handling in PHP 5, abbiamo descritto un primo esempio riguardante la possibilità di creare un try and catch block all'interno del quale testare gli output derivanti dal sistema di controllo denominato try, throw and catch.

L'esempio precedente non prevede di visualizzare le notifiche di errore al presentarsi di un'eccezione, quindi ora presenteremo del codice destinato ad una funzione esattamente contraria.
Salviamo il listato esposto qui sotto in un file chiamato, ad esempio, eccezione3.php:

<?
try {
  $var = -1000;
  $var2 = -2; 
  if ( $var < $var2 )
  {
    throw new Exception($var. " è inferiore a " .$var2. "<br />");
    echo "Prova a stamparmi se ci riesci!";
  }
}
catch (Exception $excp) {
  echo "Alt!! Ho trovato un'eccezione:<br />", $excp;
}
?>

Di seguito, riportiamo per completezza espositiva la stampa a video dell'output conseguente al test del codice appena digitato:
Alt!! Ho trovato un'eccezione:
exception 'Exception' with message '-1000 è inferiore a -2
' in c:\programmi\php\www\err.php:7 Stack trace: #0 {main}
Lo script proposto ci riporta a quanto detto nel primo di questa breve serie di articoli sulla gestione delle eccezioni, nelle distribuzioni di PHP precedenti alla 5, infatti, il test dei codici era pressocchè l'unica maniera di reperire indicazioni riguardanti il verificarsi di eccezioni.

Il limite insito in un sistema come quello in vigore fino a PHP 4, stava nell'impossibilità di poter "specializzare" le operazioni di Exception Handling predefinendo la tipologia di reazione a seconda delle differenti possibilità di errore.

Nel codice proposto come esempio abbiamo innanzitutto sottoposto delle istruzioni a try; di seguito abbiamo lanciato all'interno del blocco un'eccezione tramite throw, questo ha determinato l'impossibilità di eseguire le istruzioni poste all'interno del try.

L'eccezione è stata quindi istanziata quale oggetto appartenente alla classe precedentemente definita, cioè Exception. L'istanza, conferendo delle proprietà all'oggetto lo ha reso riutilizzabile, infatti, lo ritroviamo al di fuori del blocco di try dove diviene argomento di un'istruzione e non ne blocca l'esecuzione.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home