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

Home ~ Php :: Try, throw and catch delle eccezioni in PHP 5 :: Indice Php

Try, throw and catch delle eccezioni in PHP 5

Categoria: Php Inserito il: 03-04-2006 Stampa (6113 click)

L'azione di controllo svolta dalla logica del try, throw and catch prevede quindi due esiti possibili: o l'eccezione viene rilevata (catching con esito positivo) e quindi le istruzioni previste nel listato successivo all'errore non vengono escluse dal ciclo di esecuzione stabilito dal sorgente, oppure, l'eccezione non viene rilevata (Uncaught exception) e quindi i possibili input previsti vengono abortiti e non producono effetti (o, per meglio dire, non vengono prodotti come effetto).

Per eseguire efficacemente il catching di un'eccezzione è possibile racchiudere il codice destinato all'esecuzione all'interno di un blocco in cui è prevista la prova e il lancio del listato (try and catch block); all'interno di questo blocco di istruzioni potremo operare una distinzione efficace tra codice privo di errori e codice in grado di produrre notifiche di errore.

Allo scopo di chiarire meglio quanto appena espresso, un esempio pratico può essere di grande aiuto:

Contollo delle eccezioni.', 100);
  print "Blocca tutto!!";
} 
catch(Exception $var) {
  print $var->getMessage();
}
?>
Dopo un semplice test effettuato salvando il codice appena proposto in una pagina chiamata, ad esempio, eccezione2.php riceveremo in output come risultato la stampa a video delle seguenti stringhe:
Stampa questo codice.
Contollo delle eccezioni.
Casa è accaduto? apparentemente non molto, ma in relatà il nostro listato ha eseguito sotto l'azione dell'eseguibile di PHP 5 tutta una serie di operazioni che, naturalmente, evidenziano nell'output solo il loro risultato finale.

Innazitutto la prima stringa destinata alla stampa a video ("'Stampa questo codice.") non viene sottoposta a controlli nè produce eccezioni, ma rientra comunque nel blocco di try; l'istruzione ad essa correlata verrà eseguita correttamente.

In secondo luogo viene lanciata un'eccezione seguendo la stessa procedura utilizzata nell'esempio del capitolo precedente. L'eccezione non è stata ancora sottoposta ad un'azione di catching e quindi l'istruzione immediatamente sottostante, la stampa a video della stringa "Blocca tutto!!" non viene eseguita.

Viene effettuato il catching dell'eccezione e l'effetto conseguente al lancio di quest'ultima viene passato come valore ad una variabile ($var).

Infine, il metodo getMessage() raccoglie la variabile prodotta dall'azione di catching accettandola come parametro e viene stampata a video la stringa che le è stata assegnata come valore.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
MySQL: eliminare records duplicati e impedirne l'inserimento
Una delle richieste di supporto più frequenti in tema di gestione delle basi di dati è quella relativa all'eliminazione... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti