Exception
Базовый класс исключений.
Синтаксис
new Exception(string $message = "", int $code = 0, ?Throwable $previous = null)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| $message | string | Необязательный. Сообщение об ошибке. |
| $code | int | Необязательный. Числовой код ошибки. |
| $previous | ?Throwable | Необязательный. Исключение, которое стало причиной этого. |
Возвращаемое значение
ExceptionОбъект с методами `getMessage()`, `getCode()`, `getFile()`, `getLine()`.
Примеры
Выброс и перехват:
<?php
try {
throw new Exception('Something went wrong', 42);
} catch (Exception $error) {
echo $error->getMessage(), ' ', $error->getCode();
}Результат:
Something went wrong 42Собственный класс исключения:
<?php
class PaymentFailed extends Exception {}
try {
throw new PaymentFailed('Card declined');
} catch (PaymentFailed $error) {
echo get_class($error), ': ', $error->getMessage();
}Результат:
PaymentFailed: Card declinedПримечания
Ошибки самого PHP — TypeError, DivisionByZeroError — наследуют не Exception, а Error. Чтобы перехватить и те и другие, ловите Throwable.
См. также
- InvalidArgumentException — Исключение для неверного аргумента функции.
- PDO — Подключение к базе данных.
Вопросы и ответы по теме
В учебнике
- Исключения — Исключения в PHP — throw, try, catch и finally, собственные классы исключений и встроенные ошибки.