Kommandot throw

Kommandot throw används för att uttryckligen kasta ett undantag i PHP. Det tar en parameter - ett undantagsobjekt, som måste vara en instans av en klass som ärver från basklassen Exception. När denna funktion anropas avbryts körningen av nuvarande kod omedelbart, och PHP försöker hitta motsvarande catch-block för att hantera undantaget.

Syntax

phpthrow new ExceptionClass(message, code, previous);

Exempel

Ett enkelt exempel på att generera ett undantag:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Ålder kan inte vara negativt');
  }
?>

Resultat av kodkörning:

phpFatal error: Uncaught Exception: Ålder kan inte vara negativt

Exempel

Exempel med undantagshantering:

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

Resultat av kodkörning:

php'Fel: Division med noll'

Exempel

Användning av ett anpassat undantag:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Anpassat felmeddelande');
  } catch (MyCustomException $e) {
    echo 'Anpassat fel fångat: ' . $e->getMessage();
  }
?>

Resultat av kodkörning:

php'Anpassat fel fångat: Anpassat felmeddelande'

Se även

  • konstruktionen try,
    som definierar ett kodblock för undantagshantering
  • konstruktionen catch,
    som fångar och hanterar undantag
  • klassen Exception,
    som är basklassen för alla undantag