Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

Throwable

Общий интерфейс всего, что можно бросить и поймать.

Синтаксис

catch (Throwable $e) { … }

Возвращаемое значение

ThrowableИнтерфейс с методами `getMessage()`, `getCode()`, `getFile()`, `getLine()`, `getTrace()`, `getPrevious()`.

Примеры

Поймать и исключение, и ошибку:

<?php
 
function risky(int $case): void
{
    if ($case === 1) {
        throw new RuntimeException('exception');
    }
 
    intdiv(1, 0);
}
 
foreach ([1, 2] as $case) {
    try {
        risky($case);
    } catch (Throwable $e) {
        echo get_class($e), ': ', $e->getMessage(), "\n";
    }
}

Результат:

RuntimeException: exception
DivisionByZeroError: Division by zero

Примечания

catch (Exception $e) не поймает TypeError или DivisionByZeroError — они наследуют Error. Throwable ловит всё; используйте его на верхнем уровне программы.

См. также

  • Exception — Базовый класс исключений.
  • Error — Базовый класс внутренних ошибок PHP.
  • set_exception_handler — Назначает функцию для исключений, которые никто не поймал.

Вопросы и ответы по теме

В учебнике

  • Исключения — Исключения в PHP — throw, try, catch и finally, собственные классы исключений и встроенные ошибки.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.