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;