donnnny
@donnnny
великий велосипедостроитель

Является ли такой подход плохим в работе с исключениями, если в методе render сразу же возвращать ответ в формате json?

Не является ли такой подход плохим в работе с исключениями, если в методе render сразу же возвращать ответ в формате json, вот пример:
namespace App\Exceptions\Telegram;

use DomainException;
use Illuminate\Http\Response;

class InvalidDataTelegramException extends DomainException
{
    public function render()
    {
        return response(
            ['message' => __('auth.incorrect_telegram')],
            Response::HTTP_UNPROCESSABLE_ENTITY,
        );
    }
}
  • Вопрос задан
  • 925 просмотров
Пригласить эксперта
Ответы на вопрос 2
@iljaGolubev
Исключение без стандартных message, code. Фикс json респонз. Не делайте так.
Это сейчас вам достаточно всегда получать json. Но что будет при вызове из консоли? а в логах?

Как минимум - релиазовать Illuminate\Contracts\Support\Responsable.
А если Symfony\Component\HttpKernel\Exception\HttpExceptionInterface релиазовать или просто наследовать от HttpException то в вашем случае будет достаточно
throw new InvalidDataTelegramException(Response::HTTP_UNPROCESSABLE_ENTITY, __('auth.incorrect_telegram');

Illuminate\Foundation\Exceptions\Handler сделает тоже, что вы и даже больше.
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
Имхо, таки рендерить исключения для клиента лучше или в контроллере, или в команде, где там у вас точка входа.
Иначе, если у вас исключение знает, как его обрабатывать - то какое же это исключение?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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