@icefrozenekb

Как правильно ловить ошибки в Next.js + Axios?

Всем привет! Нужна помощь) Речь про Next.js 14

Столкнулся с очень непонятной ситуацией. Наткнулся на гайдик, где показывается классно что можно создать error.tsx в корне проекта и ловить там ошибки, посылая их на страницу через, например throw new Error('Ошибка чтения файла');

Я уже обрадовался, классная штука, и правда ловит ошибки какие надо и где мне надо. Напихал их везде. И тут я решил сбилдить проект. А фишка в том, что в моем коде есть условие: если есть локальные переменные в Kubernetes, то делай одно. А если нет, то делай другое. И подкрепил я все этим вот throw new Error на каждом этапе.

И что получилось: throw new Error просто тупо игнорирует, что нужно переходить к else блоку, в случае если отсутствуют переменные окружения Kubernetes, и крашит билд выплевывая мне throw new Error из условия, которое должно было быть пропущенным.

Я почитал, что это нормальная история, что throw new Error крашит билд, типа оно для этого и создано чтобы отлавливать. Тогда как черт побери его использовать, если до деплоя на прод ошибка будет в 100% случаев?
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
А фишка в том, что в моем коде есть условие: если есть локальные переменные в Kubernetes, то делай одно. А если нет, то делай другое


Все эти переменные должны быть "стандартизированы" в рамках приложения, и приложение должно выбирать стратегию работы в зависимости от окружения. Например, для k8s настоящая база и куча переменных коннекта, а локально sqlite файл. Приложение дожно уметь работать с обоими вариантами, и плясать от некой переменной окружения RUNTIME_ENV, которая может принимать значения вроде k8s-stage | k8s-prod | local, и уже дальше от них плясать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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