70,5 TRY CATCH
Gli errori sono eventi dei programmi che devono essere gestiti dal sistema e che ne provocano la chiusura.
Le eccezioni, invece, sono eventi che non fanno parte del normale flusso della logica del programma, ma da esso devono essere gestiti . Possono essere eseguite quando l’applicazione riesce ad individuare un problema o quando l’utente svolge un’operazione inconsueta.
L’approccio al formato standard per gestire le eccezioni utilizza il blocco try / catch.
Tutto il codice che può provocare un’eccezione deve essere incluso in un blocco try :
try { $risultato = $primoNumero / $secondoNumero; } catch (Exception $e) { //codice da eseguire in caso di lancio di un'eccezione } catch (Error $e) { // PHP7+ raccoglie e gestisce gli errori }
Per generare un eccezione si usa la keyword throw (lancia)
throw new Exception('messaggio' , codice);
throw innesca il meccanismo di gestione delle eccezioni, seguito dalla creazione di un nuovo oggetto appartenente alla classe speciale Exception. L’oggetto Exception accetta 2 parametri: un messaggio di nostra scelta, richiamabile col metodo getMessage() e il codice di errore numerico di nostra scelta, richiamabile col metodo getCode() .
Vediamo un esempio completo del blocco try catch con più possibilità di eccezioni :
$primoNumero=6; $secondoNumero=0; try { if ($secondoNumero == 0) { throw new Exception("Eccezione Zero"); } else { $risultato = $primoNumero / $secondoNumero; } // altro codice con eccezione } catch (Exception $e) { switch ($e->getMessage()) { case "Eccezione Zero": //echo "Il secondo numero deve essere maggiore di zero"; echo $e->getCode(); break; case "Altra eccezione": echo "Si è verificato qualche altro errore"; break; default: echo $e->getMessage(); } } echo $risultato;