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;