PHP:
Gestione degli errori

Come fare:

In PHP, puoi gestire gli errori utilizzando i blocchi try-catch e puoi personalizzare il processo con gestori di errori personalizzati ed eccezioni.

// Esempio di base try-catch
try {
  // Fai qualcosa di rischioso
  $file = fopen("fileinesistente.txt", "r");
} catch (Exception $e) {
  // Gestisci l'errore
  echo "Errore: " . $e->getMessage();
}

// Impostare un gestore di errori personalizzato
set_error_handler(function($severity, $message, $file, $line) {
  throw new ErrorException($message, 0, $severity, $file, $line);
});

// Utilizzo delle eccezioni
class MyException extends Exception {}

try {
  // Fai qualcosa e lancia un'eccezione personalizzata
  throw new MyException("Errore personalizzato!");
} catch (MyException $e) {
  // Gestisci l'eccezione personalizzata
  echo $e->getMessage();
}

// Output di esempio:
// Errore: fopen(fileinesistente.txt): failed to open stream: No such file or directory
// Errore personalizzato!

Approfondimento

Ai tempi, gli errori PHP erano più che altro avvisi e notifiche che non interrompevano l’esecuzione degli script. Con la maturazione del linguaggio, è stata adottata una più robusta gestione degli errori orientata agli oggetti tramite la classe Exception introdotta in PHP 5. Successivamente, PHP 7 è stato rilasciato con classi Error che differenziano finalmente tra errori ed eccezioni.

Prima dei blocchi try-catch, PHP utilizzava set_error_handler() per affrontare gli errori. try-catch è più pulito, più moderno. Ma i gestori di errori personalizzati hanno ancora il loro spazio, specialmente per il codice legacy o quando è necessario intercettare ciò che normalmente non sarebbero errori eccezionali.

L’interfaccia Throwable in PHP 7+ significa che sia che si tratti di un Error che di un’Exception, puoi catturare entrambi. Questo è utile perché ora non ti perdi errori critici di runtime, che prima erano più difficili da tracciare.

Alternative ai meccanismi incorporati di PHP includono librerie e framework che dispongono dei propri sistemi di gestione degli errori, offrendo più funzionalità come la registrazione degli errori su file o la visualizzazione di pagine di errore user-friendly.

Vedi anche