De catch-functie

De functie catch maakt deel uit van een try-catch-blok en dient om uitzonderingen op te vangen die kunnen worden geworpen in het try-blok. Wanneer een uitzondering optreedt, springt de uitvoering van de code naar het bijbehorende catch-blok, waar de fout kan worden afgehandeld.

Syntaxis

phptry {
  // Code die een uitzondering kan werpen
} catch (ExceptionType $e) {
  // Afhandeling van de uitzondering
}

Voorbeeld

Een eenvoudig voorbeeld van uitzonderingsafhandeling:

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

Resultaat van de code-uitvoering:

php'Caught exception: Something went wrong'

Voorbeeld

Afhandeling van verschillende soorten uitzonderingen:

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();
  }
?>

Mogelijke resultaten van de code-uitvoering:

php'Invalid argument: Invalid argument'
of
'Runtime error: Runtime error'

Zie ook

  • de constructie try,
    die een codeblok definieert voor uitzonderingsafhandeling
  • de constructie throw,
    die een uitzondering werpt
  • de klasse Exception,
    die de basisklasse is voor alle uitzonderingen