Una delle novità più importanti introdotte con PHP 5 è stato il potenziamento delle caratteristiche object oriented del linguaggio. Nella lista dei miglioramenti spicca, almeno per quanto mi riguarda, la gestione delle eccezioni.
Chi già programma con un linguaggio orientato ad oggetti senz'altro conoscerà l'importanza delle eccezioni per la scrittura di un codice elegante, versatile ma soprattutto estremamente semplificato nella gestione degli errori.
Per tutti gli altri non vorrei anticipare troppo, ma mi permetto di spendere ancora un paio di parole in merito... giusto per complicarvi le idee.
L'eccezione è uno degli elementi essenziali di un linguaggio di programmazione evoluto e, soprattutto, object oriented.
Un'eccezione è, a sua volta, un oggetto, utile nella gestione di situazioni "anomale" come un errore o un comportamento inaspettato del software.
Il vantaggio di un'eccezione è che, nel momento in cui viene "sollevata", il flusso di attività del software si interrompe e torna immediatamente al più alto livello del programma in grado di gestire questo problema.
In parole povere, potete ad esempio sollevare un'eccezione in caso di errore di connessione al db e gestirne l'errore a livello di interfaccia anche se tra i due ambienti sono presenti altri livelli (classi, gestori, database layer...).
Vi ho complicato la vita? Mi sa di sì, ma questo in realtà non voleva essere un vero e proprio corso sulle eccezioni. Per approfondimenti vi rimando ad un articolo di HTML.it sulle eccezioni scritto per C#.
Il reale motivo di questo post, oltre a ribadire l'importanza delle eccezioni, è quello di segnalarvi un documento molto interessante scovato qualche tempo fa dal titolo PHP5 Exception Use Guidelines. Si tratta, sostanzialmente, di un documento informale che descrive le linee guida principali per la corretta gestione ed implementazione delle eccezioni in PHP5.
Da tenere tra i bookmarks.
Io mi sono (finalmente) quasi liberato dai vari sistemi artigianali per la gestione degli errori... voi che soluzioni adottate?