De throw-opdracht

De opdracht throw wordt gebruikt om expliciet een uitzondering op te werpen in PHP. Het accepteert één parameter - een uitzonderingsobject, dat een instantie moet zijn van een klasse, die overerft van de basisklasse Exception. Bij het aanroepen van deze functie wordt de uitvoering van de huidige code onmiddellijk gestopt, en PHP probeert om het bijbehorende catch-blok te vinden om de uitzondering af te handelen.

Syntaxis

phpthrow new ExceptionClass(message, code, previous);

Voorbeeld

Een eenvoudig voorbeeld van het genereren van een uitzondering:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Leeftijd kan niet negatief zijn');
  }
?>

Resultaat van het uitvoeren van de code:

phpFatal error: Uncaught Exception: Leeftijd kan niet negatief zijn

Voorbeeld

Voorbeeld met afhandeling van een uitzondering:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Deling door nul');
    }
  } catch (Exception $e) {
    echo 'Fout: ' . $e->getMessage();
  }
?>

Resultaat van het uitvoeren van de code:

php'Fout: Deling door nul'

Voorbeeld

Gebruik van een aangepaste uitzondering:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Aangepast foutbericht');
  } catch (MyCustomException $e) {
    echo 'Aangepaste fout opgevangen: ' . $e->getMessage();
  }
?>

Resultaat van het uitvoeren van de code:

php'Aangepaste fout opgevangen: Aangepast foutbericht'

Zie ook

  • de constructie try,
    die een codeblok definieert voor het afhandelen van uitzonderingen
  • de constructie catch,
    die uitzonderingen onderschept en afhandelt
  • de klasse Exception,
    die de basisklasse is voor alle uitzonderingen