@nyatmeat15

Правильная обработка исключений от внешнего апи symfony?

Здравствуйте. Есть определенное апи, с которым работаю через guzzle. Обработка с апи разбита на 3 уровня. Контроллер, менеджер, сервис апи.
Хотелось бы уведомлять об ошибке в контроллере, что конкретно произошло не так в апи. Должен ли я обернуть блок вызова менеджера, который вызывает апи прям в контроллере, или обработать как то иначе, через какие то модели. Например сервис апи возвращал бы результат валиден или нет, и обрабатывать уже в менеджере?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
Decadal
@Decadal
вы можете создать классы ошибок. И бросать исключения в тех или иных случаях, разделяя их по категориям "случившегося", а в контроллере можете навешивать обработчики на тот или иной тип исключений.

Вот пример из моего кода:

try {
    $results = $core->execute($coreConfig);
}
catch (BreakpointException $e) {
    throw $e;
}
catch (StrategiesException $e) {
    $this->mark("Expected error:".$e->getMessage());
    return $this->formattingResult(ProcessRecord::STATUS_ERROR,$e->getMessage());
}
catch (\Exception $e) {
    $this->mark("Unexpected error:".$e->getMessage()."[".$e->getFile()."] : ".$e->getLine());
    return $this->formattingResult(ProcessRecord::STATUS_UNEXPECTED_ERROR,$e->getMessage());
}


правда у меня это лежит в сервисе, но в принципе, зависит от логики работы.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы