Příkaz throw

Příkaz throw se používá k explicitnímu vyvolání výjimky v PHP. Přijímá jeden parametr - objekt výjimky, který musí být instancí třídy, dědičné od základní třídy Exception. Při volání této funkce je provádění aktuálního kódu okamžitě ukončeno a PHP se pokusí najít odpovídající blok catch pro zpracování výjimky.

Syntaxe

phpthrow new ExceptionClass(message, code, previous);

Příklad

Jednoduchý příklad generování výjimky:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Věk nemůže být záporný');
  }
?>

Výsledek provedení kódu:

phpFatal error: Uncaught Exception: Věk nemůže být záporný

Příklad

Příklad se zpracováním výjimky:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Dělení nulou');
    }
  } catch (Exception $e) {
    echo 'Chyba: ' . $e->getMessage();
  }
?>

Výsledek provedení kódu:

php'Chyba: Dělení nulou'

Příklad

Použití uživatelské výjimky:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Vlastní chybová zpráva');
  } catch (MyCustomException $e) {
    echo 'Zachycena vlastní chyba: ' . $e->getMessage();
  }
?>

Výsledek provedení kódu:

php'Zachycena vlastní chyba: Vlastní chybová zpráva'

Viz také

  • konstrukci try,
    která definuje blok kódu pro zpracování výjimek
  • konstrukci catch,
    která zachycuje a zpracovává výjimky
  • třídu Exception,
    která je základní třídou pro všechny výjimky