Funkcja catch

Funkcja catch jest częścią bloku try-catch i służy do przechwytywania wyjątków, które mogą zostać rzucone w bloku try. W przypadku wystąpienia wyjątku wykonanie kodu przechodzi do odpowiedniego bloku catch, gdzie można obsłużyć błąd.

Składnia

phptry {
  // Kod, który może rzucić wyjątek
} catch (ExceptionType $e) {
  // Obsługa wyjątku
}

Przykład

Najprostszy przykład obsługi wyjątku:

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

Wynik wykonania kodu:

php'Caught exception: Something went wrong'

Przykład

Obsługa różnych typów wyjątków:

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żliwe wyniki wykonania kodu:

php'Invalid argument: Invalid argument'
lub
'Runtime error: Runtime error'

Zobacz też

  • konstrukcję try,
    która definiuje blok kodu do obsługi wyjątków
  • konstrukcję throw,
    która rzuca wyjątek
  • klasę Exception,
    która jest klasą bazową dla wszystkich wyjątków