Команда throw
Командата throw се използва за явно хвърляне на изключение в PHP.
Тя приема един параметър - обект на изключение, който трябва да бъде инстанция на клас,
наследен от базовия клас Exception. При извикване на тази функция изпълнението на текущия
код незабавно се прекратява, и PHP се опитва да намери съответстващ catch блок за обработка на изключението.
Синтаксис
throw new ExceptionClass(message, code, previous);
Пример
Прост пример за генериране на изключение:
<?php
$age = -5;
if ($age < 0) {
throw new Exception('Age cannot be negative');
}
?>
Резултат от изпълнението на кода:
Fatal error: Uncaught Exception: Age cannot be negative
Пример
Пример с обработка на изключение:
<?php
try {
$res = 10 / 0;
if (is_infinite($res)) {
throw new Exception('Division by zero');
}
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
Резултат от изпълнението на кода:
'Error: Division by zero'
Пример
Използване на потребителско изключение:
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException('Custom error message');
} catch (MyCustomException $e) {
echo 'Custom error caught: ' . $e->getMessage();
}
?>
Резултат от изпълнението на кода:
'Custom error caught: Custom error message'