rss
twitter
  •  

Gestire le eccezioni in PHP – Prima Parte

| Scritto in Php |

1

Condividi

php logo Gestire le eccezioni in PHP – Prima Parte

Credo che servirà suddividere l’argomento in tre parti essendo delicato e anche abbastanza importante.

PHP 5

La versione 5 del PHP ha introdotto una nuova gestione degli errori tramite eccezioni; si tratta di un approccio che chi, come me, proviene dal mondo Java, non avrà difficoltà a comprendere.

Infatti si è riusciti a separare nettamente, durante lo sviluppo, la gestione degli errori dalla logica dell’applicativo. Come è giusto che sia.
Pensate che fino al PHP 4 non esisteva una gestione degli errori con eccezioni, ma si scriveva il codice, lo si testava, e si cercavano gli errori per applicare la soluzione adeguata. A tentativi, insomma.
Occorreva, a detta di tutti, uno strumento in grado di rendere molto più snella e veloce l’analisi del codice al fine di razionalizzare i tempi di intervento per errori più o meno evidenti.

Exception Handling

Come per Java, si è introdotta la logica dell’Exception Handling che inserisce nel controllo delle eccezioni il try (prova), throw (lancia) e catch (cattura).

In base a questa logica, l’azione di controllo svolta dalla triade suddetta potrebbe portare a due situazioni ben distinte :

- eccezione rilevata (catching positivo) : le istruzioni previste di seguito all’errore non sono escluse dal ciclo di esecuzione .

eccezione non rilevata (Uncaught exception) : gli input previsti sono blocati e non producono effetti.

Come sempre, un esempio, vale più di cento parole di spiegazione :

<?
try {
  print 'Stampa messaggio errore.';
  throw new Exception( '<br />Contollo eccezioni.', 100);
  print "Blocca tutto!!";
}
catch(Exception $var) {
  print $var->getMessage();
}
?>

Se provate a salvare questo codice in un file, ad esempio, eccezione.php visualizzerete come output le seguenti stringhe:

‘Stampa messaggio errore’

‘Contollo delle eccezioni.’

Vediamo in dettaglio cosa è accaduto.

La stampa della prima stringa (Stampa messaggio errore) è ovvia poichè l’istruzione relativa non è sottoposta ad alcun controllo nè produce eccezioni.

Quindi, viene lanciata un’eccezione che subito passa la palla ad un’azione di catching. Ecco perchè l’istruzione immediatamente sottostante (stampa a video della stringa “Blocca tutto!!”) non è eseguita.
Quindi, come detto, è effettuato il catching dell’eccezione con il passaggio ad una variabile ($var).
Alla fine, il metodo getMessage() si prende la variabile prodotta dall’azione di catching accettandola come parametro e stampa a video il valore (la stringa, in tal caso).

Ecco motivato l’output che visualizzate lanciando questo test.

La prima parte si conclude qui, volendo essere solo una piccola introduzione ad un argomento più profondo che sviscereremo meglio nella seconda e terza parte.

Feed

Commenti (1)

[...] aver, nella prima parte, presentato giusto una introduzione su come gestire le eccezioni in php (blocco try-catch), [...]

Post a comment