@donnnny
Не является ли такой подход плохим в работе с исключениями, если в методе 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,
);
}
}
Решения вопроса 0
Ответы на вопрос 2
@iljaGolubev
Исключение без стандартных message, code. Фикс json респонз. Не делайте так.
Это сейчас вам достаточно всегда получать 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
Имхо, таки рендерить исключения для клиента лучше или в контроллере, или в команде, где там у вас точка входа.
Иначе, если у вас исключение знает, как его обрабатывать — то какое же это исключение?
Иначе, если у вас исключение знает, как его обрабатывать — то какое же это исключение?