PHP  »  Articoli  »  Programmazione Php 

Utilizzare le eccezioni per ottenere maggiori dettagli sugli errori

di: Claudio Garau     13 Novembre 2008

La gestione delle eccezioni consente non soltanto di ricevere notifiche dall'esecuzione di un'applicazione nel caso in cui vengano generati comportamenti non previsti (come per esempio i malfunzionamenti), ma anche di raccogliere dettagli relativi alla tipologia di errore verificatosi; per massimizzare l'utilità delle eccezioni, è sufficiente osservare alcune semplici regole che consentono di impiegare questo strumento in modo più proficuo permettendo agli script di inviare notifiche contenenti informazioni precise da utilizzare nelle fasi di sviluppo, produzione ed eventualmente di correzione.

Semplici esempi di gestione delle eccezioni

Come è noto, PHP integra nativamente un sistema abbastanza completo per la gestione delle eccezioni con particolare attenzione verso gli errori prodotti dall'esecuzione degli script, se nel codice digitato manca un ; (punto e virgola) per la chiusura di un'istruzione o una variabile viene considerata una costante non definita perché manca del simbolo $ (simbolo del dollaro), PHP è in grado di segnalare il problema e di indicare all'utilizzatore la riga coinvolta.

Ma le eccezioni non sono necessariamente degli "errori" nel codice, più semplicemente possono anche essere dei comportamenti non voluti o degli esiti non previsti in seguito ad una richiesta da parte di un client. Se per esempio un utilizzatore richiede di accedere ad un determinato file e questo non è più disponibile sul server non è possibile dire che questo sia il risultato di un errore in sede di sviluppo, soprattutto se l'applicazione è stata dotata di accorgimenti in grado di gestire questo tipo di eccezione.

Le eccezioni possono quindi essere anche uno strumento valido per inviare informazioni importanti all'utenza e in generale a chi non ha la possibilità di accedere direttamente al codice sorgente degli script. Un modo molto semplice di gestire le eccezioni all'interno di un'applicazione è quello di utilizzare le istruzioni condizionali, un comune blocco IF - ELSE consente di ricavare alcune informazioni riguardo agli esiti delle esecuzioni.

Il listato contenuto nello script seguente rappresenta un esempio di elementare gestione delle eccezioni:

<?php
# definizione della funzione
function dividi($n) {
# blocco condizionale
    if (!$n) {
        throw new Exception("Division by zero.");
    }
# valore di ritorno della funzione       
    else return 10/$n;
}
# esecuzione della funzione
try {
    echo dividi(10);
        echo "<br/>\n";
    echo dividi(0);
        echo "<br/>\n";
# gestione dell'eccezione        
} catch (Exception $e) {
    echo "Rilevata eccezione: ".  $e->getMessage();
}
# codice al di fuori della gestione delle eccezioni
echo "<br/>\n";
echo "Html.it";
?>

Il codice proposto determina una serie di semplici comportamenti:

  1. Introduce una funzione che ha il compito di controllare che una determinata variabile sia stata valorizzata o abbia un valore diverso da "0" (cioè non sia FALSE), soltanto nel caso in cui questa variabile rispetti le condizioni proposte verrà utilizzata come divisore dell'operazione prevista.
  2. Propone due diverse esecuzioni della funzione: la prima prevede il passaggio di un valore utilizzabile come divisore, da infatti luogo al comportamento previsto dal valore di ritorno; la seconda prevede il passaggio di un "non valore", l'applicazione dovrebbe produrre un errore ma ciò non avviene in quanto l'eccezione è stata prevista nel codice della funzione.
  3. Produce la notifica dell'eccezione prevista e rilevata.
  4. Esegue il resto del codice e produce gli output previsti nonostante sia stata rilevata un'eccezione.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti