Throwable
(PHP 7, PHP 8)
Введение
Throwable является родительским интерфейсом для всех объектов, выбрасывающихся с помощью выражения
, включая классы Error и Exception.throw
Замечание:
Классы PHP не могут напрямую реализовать интерфейс Throwable. Вместо этого они могут наследовать подкласс Exception.
Обзор интерфейсов
Throwable {
/* Методы */
abstract public getMessage ( ) : string
abstract public getCode ( ) : int
abstract public getFile ( ) : string
abstract public getLine ( ) : int
abstract public getTrace ( ) : array
abstract public getTraceAsString ( ) : string
abstract public getPrevious ( ) : Throwable|null
abstract public __toString ( ) : string
}
Содержание
- Throwable::getMessage — Получает сообщение ошибки
- Throwable::getCode — Возвращает код исключения
- Throwable::getFile — Возвращает файл, в котором произошло исключение
- Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен
- Throwable::getTrace — Возвращает трассировку стека
- Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки
- Throwable::getPrevious — Возвращает предыдущий Throwable
- Throwable::__toString — Получает строковое представление выброшенного объекта
I wrote a simple script that prints out the Throwable and Exception tree for every PHP version.
You can find this script here:
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a
And its output is here:
https://3v4l.org/sDMsv
6
thisbug at foxmail dot com ¶1 year ago
try {
// Code that may throw an Exception or Error.
} catch (Throwable $t) {
// Executed only in PHP 7, will not match in PHP 5.x
} catch (Exception $e) {
// Executed only in PHP 5.x, will not be reached in PHP 7
}
interface MyPackageThrowable extends Throwable {}
class MyPackageException extends Exception implements MyPackageThrowable {}
throw new MyPackageException();
Описание класса throwable, примеры использования класса throwable.
Смотрите также:
Описание на ru2.php.net
Описание на php.ru