Príkaz throw

Príkaz throw sa používa na explicitné vyvolanie výnimky v PHP. Akceptuje jeden parameter - objekt výnimky, ktorý musí byť inštanciou triedy, zdedenej od základnej triedy Exception. Pri volaní tejto funkcie sa vykonávanie aktuálneho kódu okamžite zastaví a PHP sa pokúsi nájsť zodpovedajúci blok catch na spracovanie výnimky.

Syntax

phpthrow new ExceptionClass(message, code, previous);

Príklad

Jednoduchý príklad generovania výnimky:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Vek nemôže byť záporný');
  }
?>

Výsledok vykonania kódu:

phpFatal error: Uncaught Exception: Vek nemôže byť záporný

Príklad

Príklad so spracovaním výnimky:

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

Výsledok vykonania kódu:

php'Chyba: Delenie nulou'

Príklad

Použitie používateľskej výnimky:

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

Výsledok vykonania kódu:

php'Zachytená vlastná chyba: Vlastná chybová správa'

Pozri tiež

  • konštrukciu try,
    ktorá definuje blok kódu pre spracovanie výnimiek
  • konštrukciu catch,
    ktorá zachytáva a spracúva výnimky
  • triedu Exception,
    ktorá je základnou triedou pre všetky výnimky