Команда throw

Командата throw се използва за явно хвърляне на изключение в PHP. Тя приема един параметър - обект на изключение, който трябва да бъде инстанция на клас, наследен от базовия клас Exception. При извикване на тази функция изпълнението на текущия код незабавно се прекратява, и PHP се опитва да намери съответстващ catch блок за обработка на изключението.

Синтаксис

phpthrow new ExceptionClass(message, code, previous);

Пример

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

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Age cannot be negative');
  }
?>

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

phpFatal error: Uncaught Exception: Age cannot be negative

Пример

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

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

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

php'Error: Division by zero'

Пример

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

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Custom error message');
  } catch (MyCustomException $e) {
    echo 'Custom error caught: ' . $e->getMessage();
  }
?>

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

php'Custom error caught: Custom error message'

Вижте също

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