Функция catch

Функцията catch е част от блока try-catch и служи за прихващане на изключения, които могат да бъдат хвърлени в блока try. При възникване на изключение изпълнението на кода преминава в съответния блок catch, където може да се обработи грешката.

Синтаксис

phptry {
  // Код, който може да хвърли изключение
} catch (ExceptionType $e) {
  // Обработка на изключението
}

Пример

Прост пример за обработка на изключение:

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

Резултат от изпълнението на кода:

php'Caught exception: Something went wrong'

Пример

Обработка на различни типове изключения:

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();
  }
?>

Възможни резултати от изпълнението на кода:

php'Invalid argument: Invalid argument'
или
'Runtime error: Runtime error'

Вижте също

  • конструкцията try,
    която дефинира блок код за обработка на изключения
  • конструкцията throw,
    която хвърля изключение
  • класът Exception,
    който е базов клас за всички изключения