Funzione catch

La funzione catch fa parte del blocco try-catch e serve per intercettare le eccezioni che possono essere lanciate nel blocco try. Quando si verifica un'eccezione, l'esecuzione del codice passa al corrispondente blocco catch, dove è possibile gestire l'errore.

Sintassi

phptry {
  // Codice che può lanciare un'eccezione
} catch (ExceptionType $e) {
  // Gestione dell'eccezione
}

Esempio

Un esempio semplice di gestione di un'eccezione:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
  }
?>

Risultato dell'esecuzione del codice:

php'Caught exception: Something went wrong'

Esempio

Gestione di diversi tipi di eccezioni:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Invalid argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Runtime error: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Generic exception: ' . $e->getMessage();
  }
?>

Possibili risultati dell'esecuzione del codice:

php'Invalid argument: Invalid argument'
o
'Runtime error: Runtime error'

Vedi anche

  • la costruzione try,
    che definisce un blocco di codice per la gestione delle eccezioni
  • la costruzione throw,
    che lancia un'eccezione
  • la classe Exception,
    che è la classe base per tutte le eccezioni