Задать вопрос
@kirill-93

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

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

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

В коде выше, я мог бы ловить именно QueryException в блоке catch, но если там код не 23000, а что-то другое, то у меня нет обработчика на этот случай.
Как быть?
  • Вопрос задан
  • 114 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽