Komenda throw

Komenda throw służy do jawnego zgłoszenia wyjątku w PHP. Przyjmuje jeden parametr - obiekt wyjątku, który musi być instancją klasy, odziedziczonej po bazowej klasie Exception. Po wywołaniu tej funkcji wykonanie bieżącego kodu natychmiast zostaje przerwane, a PHP próbuje znaleźć odpowiedni blok catch do obsługi wyjątku.

Składnia

phpthrow new ExceptionClass(message, code, previous);

Przykład

Prosty przykład generowania wyjątku:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Wiek nie może być ujemny');
  }
?>

Wynik wykonania kodu:

phpFatal error: Uncaught Exception: Wiek nie może być ujemny

Przykład

Przykład z obsługą wyjątku:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Dzielenie przez zero');
    }
  } catch (Exception $e) {
    echo 'Błąd: ' . $e->getMessage();
  }
?>

Wynik wykonania kodu:

php'Błąd: Dzielenie przez zero'

Przykład

Użycie niestandardowego wyjątku:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Niestandardowy komunikat błędu');
  } catch (MyCustomException $e) {
    echo 'Przechwycono niestandardowy błąd: ' . $e->getMessage();
  }
?>

Wynik wykonania kodu:

php'Przechwycono niestandardowy błąd: Niestandardowy komunikat błędu'

Zobacz też

  • konstrukcję try,
    która definiuje blok kodu do obsługi wyjątków
  • konstrukcję catch,
    która przechwytuje i obsługuje wyjątki
  • klasę Exception,
    która jest klasą bazową dla wszystkich wyjątków