@kirill-93

Как в Laravel продублировать exception?

try {
    User::create(['email' => $email]);
} catch (\Exception $e) {
    if ((int)$e->getCode() === 23000 && $e instanceof QueryException) {
        //Тут я обрабатываю создание дубликата
    } else {
        //Тут может произойти всё что угодно, нужно просто выбросить существующий эксепшн
    }
}

У меня есть некий код, который может вызвать исключения. Как мне поймать и обработать только одно исключение, а все остальные не обрабатывать?

В коде выше, я мог бы ловить именно QueryException в блоке catch, но если там код не 23000, а что-то другое, то у меня нет обработчика на этот случай.
Как быть?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
try {
    User::create(['email' => $email]);
} catch (\Exception $e) {
    if ($e->getCode() == 23000 && $e instanceof QueryException) {
        //Тут я обрабатываю создание дубликата
    } else {
        throw $e;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LemonFox
stateless mind
Есть примеры в офф доке.

https://www.php.net/manual/ru/language.exceptions.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы