Описание интерфейса Throwable:
interface Throwable
{
public function getMessage(): string; //Получает сообщение ошибки
public function getCode(): int; //Возвращает код исключения
public function getFile(): string; //Возвращает файл, в котором произошло исключение
public function getLine(): int; //Получает строку скрипта, в которой данный объект был выброшен
public function getTrace(): array; //Возвращает трассировку стека
public function getTraceAsString(): string; //Получает результаты трассировки стека в виде строки
public function getPrevious(): Throwable; //Возвращает предыдущий Throwable
public function __toString(): string; //Получает строковое представление выброшенного объекта
}
Для отлова любого исключения, можно использовать конструкцию:
try {
// Код с генерацией исключения
} catch (Throwable $t) {
// Обработка исключения
}
Для более детальной обработки исключений, вместо интерфейса Throwable , можно подставить класс, который отвечает за обработку конкретного исключения, см. ниже.
Throwable — интерфейс
- Exception — базовый класс исключений из SPL
- LogicException — используется, когда код возвращает некорректное значение
- BadFunctionCallException — используется, если вызываемой функции не существует, или в функцию передается неверное количество аргументов.
- BadMethodCallException — используется, если вызываемого метода не существует или вызываемому методу передано неверное количество аргументов.
- DomainException — используется, если вы накладываете некоторые ограничения на переменные или свойства, а возвращаемые значения выходят за эти ограничения
- InvalidArgumentException — используется, если переданные в функцию или метод, аргументы не соответствуют ожидаемому типу данных.
- LengthException — используется, если длина (имени, массива и пр.) слишком велика или слишком мала.
- BadFunctionCallException — используется, если вызываемой функции не существует, или в функцию передается неверное количество аргументов.
- RuntimeException — используется, если интерпретатор не может справиться с какой-то ситуацией во время выполнения.
- OutOfBoundsException — используется, если индекс массива указан не правильно и нет возможности использовать OutOfRangeException .
- OutOfRangeException — используется, если мы обращаемся к несуществующему индексу массива.
- RangeException — используется, если некоторое значение выходит за границы диапазона.
- OverflowException — используется, если происходит переполнение. Если используется 10 элементов, а есть попытка записать 11 элемент.
- UnderflowException — используется, при попытке удаления несуществующего элемента в контейнере.
- UnexpectedValueException — используется, если значение не соответствует по значению или по типу.
- LogicException — используется, когда код возвращает некорректное значение
- Error — используется для обработки фатальных ошибок.
- AssertionError — используется, если условие, заданное методом assert(), не выполнено.
- ParseError — используется для обработки ошибок парсинга.
- TypeError — используется, для обработки ошибок несоответствия типов данных.