PHP: Как проверить тип выброшенного исключения?
В PHP, конечно, можно перехватить все выбрасываемые исключения с помощью:
try {
/* код с исключениями */
} catch (Exception $e) {
/* Обработка исключений */
}
Но есть ли способ проверить тип выброшенного исключения внутри блока catch?
1 ответ(ов)
Вы можете использовать несколько блоков catch
для обработки различных типов исключений. Пример кода приведён ниже:
try {
/* код с возможными исключениями */
} catch (MyFirstCustomException $e) {
// Мы знаем, что это MyFirstCustomException
} catch (MySecondCustomException $e) {
// Мы знаем, что это MySecondCustomException
} catch (Exception $e) {
// Если это ни одно из вышеперечисленных исключений, мы можем поймать все остальные.
}
Важно отметить, что как только исключение будет перехвачено одним из блоков catch
, последующие блоки не будут выполнены, даже если они могут соответствовать перехваченному исключению.
Вы также можете использовать метод get_class
, чтобы получить полное имя класса любого объекта, включая исключения.
Поймать и вывести полный трейсбек исключения в Python без остановки/выхода из программы
Хорошая ли практика использовать try-except-else в Python?
Java: накладные расходы if vs. try/catch
Зачем нужен код исключений PHP? Примеры использования?
Как обойти отсутствие блока finally в PHP?