Kommandoen throw

Kommandoen throw brukes til å eksplisitt kaste et unntak i PHP. Den tar én parameter - et unntaksobjekt, som må være en forekomst av en klasse arvet fra basisklassen Exception. Når denne funksjonen kalles, stoppes utførelsen av gjeldende kode umiddelbart, og PHP prøver å finne en tilsvarende catch-blokk for å håndtere unntaket.

Syntaks

phpthrow new ExceptionClass(message, code, previous);

Eksempel

Et enkelt eksempel på generering av et unntak:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Age cannot be negative');
  }
?>

Resultat av kjøring av koden:

phpFatal error: Uncaught Exception: Age cannot be negative

Eksempel

Eksempel med håndtering av unntak:

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

Resultat av kjøring av koden:

php'Error: Division by zero'

Eksempel

Bruk av et egendefinert unntak:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Custom error message');
  } catch (MyCustomException $e) {
    echo 'Custom error caught: ' . $e->getMessage();
  }
?>

Resultat av kjøring av koden:

php'Custom error caught: Custom error message'

Se også

  • konstruksjonen try,
    som definerer en kodeblokk for håndtering av unntak
  • konstruksjonen catch,
    som fanger opp og håndterer unntak
  • klassen Exception,
    som er basisklassen for alle unntak