Funkce catch

Funkce catch je součástí bloku try-catch a slouží k zachycení výjimek, které mohou být vyhozeny v bloku try. Při výskytu výjimky se provádění kódu přesune do příslušného bloku catch, kde lze chybu zpracovat.

Syntaxe

phptry {
  // Kód, který může vyhodit výjimku
} catch (ExceptionType $e) {
  // Zpracování výjimky
}

Příklad

Nejjednodušší příklad zpracování výjimky:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
  }
?>

Výsledek provedení kódu:

php'Caught exception: Something went wrong'

Příklad

Zpracování různých typů výjimek:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Invalid argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Runtime error: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Generic exception: ' . $e->getMessage();
  }
?>

Možné výsledky provedení kódu:

php'Invalid argument: Invalid argument'
nebo
'Runtime error: Runtime error'

Viz také

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