Исключения PHP

Описание интерфейса 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 — используется, если длина (имени, массива и пр.) слишком велика или слишком мала.
    • RuntimeException — используется, если интерпретатор не может справиться с какой-то ситуацией во время выполнения.
      • OutOfBoundsException — используется, если индекс массива указан не правильно и нет возможности использовать OutOfRangeException .
      • OutOfRangeException — используется, если мы обращаемся к несуществующему индексу массива.
      • RangeException — используется, если некоторое значение выходит за границы диапазона.
      • OverflowException — используется, если происходит переполнение. Если используется 10 элементов, а есть попытка записать 11 элемент.
      • UnderflowException — используется, при попытке удаления несуществующего элемента в контейнере.
      • UnexpectedValueException — используется, если значение не соответствует по значению или по типу.
  • Error — используется для обработки фатальных ошибок.
    • AssertionError — используется, если условие, заданное методом assert(), не выполнено.
    • ParseError — используется для обработки ошибок парсинга.
    • TypeError — используется, для обработки ошибок несоответствия типов данных.

Добавить комментарий