Kommandoen throw

Kommandoen throw bruges til eksplicit at kaste en undtagelse i PHP. Den tager en parameter - en undtagelsesobjekt, som skal være en instans af en klasse, arvet fra basisklassen Exception. Når denne funktion kaldes, stopper udførelsen af den aktuelle kode omgående, og PHP forsøger at finde den tilsvarende catch-blok for at håndtere undtagelsen.

Syntaks

phpthrow new ExceptionClass(message, code, previous);

Eksempel

Et simpelt eksempel på generering af en undtagelse:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Alder kan ikke være negativ');
  }
?>

Resultat af kodeudførelse:

phpFatal error: Uncaught Exception: Alder kan ikke være negativ

Eksempel

Eksempel med håndtering af undtagelse:

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

Resultat af kodeudførelse:

php'Fejl: Division med nul'

Eksempel

Brug af brugerdefineret undtagelse:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Brugerdefineret fejlmeddelelse');
  } catch (MyCustomException $e) {
    echo 'Brugerdefineret fejl fanget: ' . $e->getMessage();
  }
?>

Resultat af kodeudførelse:

php'Brugerdefineret fejl fanget: Brugerdefineret fejlmeddelelse'

Se også

  • konstruktionen try,
    som definerer en kodeblok til håndtering af undtagelser
  • konstruktionen catch,
    som fanger og håndterer undtagelser
  • klassen Exception,
    som er basisklassen for alle undtagelser