PHP: Gestione errori
Gestione degli errori in PHP
La gestione degli errori è fondamentale per controllare il flusso di esecuzione ed evitare comportamenti imprevisti. In PHP possiamo usare diversi strumenti come try-catch
, funzioni di gestione personalizzata e l’analisi dei codici di errore.
Introduzione
Durante l’esecuzione di uno script PHP possono verificarsi errori, ad esempio la mancanza di un file, l’impossibilità di connettersi a un database o il passaggio di un parametro errato. PHP offre vari strumenti per gestire questi problemi in modo ordinato, così da non interrompere bruscamente l’applicazione e da informare correttamente l’utente o il programmatore.
Gestione errori con try-catch
Il blocco try-catch
permette di intercettare eccezioni e gestirle con codice personalizzato. È molto usato in combinazione con PDO e altre librerie.
Codice Esempio: try-catch con PDO

<?php
try {
$conn = new PDO("mysql:host=localhost;dbname=inesistente", "root", "");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connessione riuscita.";
} catch (PDOException $e) {
echo "Errore di connessione: " . $e->getMessage();
}
?>
<!-- Possibile Output:
Errore di connessione: SQLSTATE[HY000] [1049] Unknown database 'inesistente'
-->
Gestione errori con set_error_handler()
PHP consente di impostare un gestore di errori personalizzato. Questo è utile per centralizzare la logica e registrare gli errori in file di log o inviarli a un amministratore.
Codice Esempio: gestore errori personalizzato

<?php
// Funzione che gestisce gli errori
function mioGestoreErrori($errno, $errstr) {
echo "Errore [$errno]: $errstr<br>";
}
// Imposto il gestore
set_error_handler("mioGestoreErrori");
// Provoco un errore
echo $variabile_non_definita;
?>
<!-- Output:
Errore [8]: Undefined variable $variabile_non_definita
-->
Tabella riassuntiva
Strumento | Descrizione | Uso |
---|---|---|
try-catch |
Intercetta e gestisce eccezioni generate da codice o librerie. | Connessioni a database, operazioni delicate. |
set_error_handler() |
Permette di definire un gestore personalizzato per gli errori. | Centralizzare la gestione e log degli errori. |
error_log() |
Scrive errori in un file di log o li invia via email. | Tracciare problemi in produzione senza mostrare dettagli agli utenti. |
Considerazioni
Una gestione degli errori ben organizzata evita interruzioni improvvise e fornisce indicazioni utili per correggere i problemi. È preferibile non mostrare mai all’utente finale dettagli tecnici, ma registrare gli errori in modo sicuro e leggibile per chi sviluppa. Questo contribuisce alla stabilità e alla sicurezza complessiva delle applicazioni PHP.