Как стать автором
Обновить

Комментарии 20

Я добавляю в текст ошибок однократно используемый код с именем подсистемы/программы. Найти такой однократный код в исходниках теперь не проблема:


image

Это просто пример внутрикорпоративной программы, но также код ошибки можно вписать и в объект возврата.
Когда пользователь не понимает причины ошибки, то я прошу его сообщить мне код ошибки и отвечаю в чём дело, либо он говорит мне, что ситуация изменилась и текст должен быть другой. Так же такой код ошибки можно привязать и к автоматическому обработчику ошибок — что могу — исправлю, что не могу — донесу до пользователя.
Вдруг вам понравится такой метод?
P.S.
Вообще обрабатывать ошибки никто не любит, тема известная )

Поддержка таких кодов не вызывает проблем?

Не особо. Основная загвоздка была в начале пути, когда требовалось хоть как-то гарантировать уникальность. По когда ставишь на поток генерацию кодов через enum, проблема почти полностью решается автоматически. Осталась проблемка, что иногда при копи-пастах можно задублировать коды ошибок. Тут да, кроме ручного поиска по Shift-F12 другого нет, но т.к. занимаюсь этим нечасто, то можно и потерпеть. А можно было бы повесить на Roslyn. У меня штук 5 разных проектов в один проект собираются. Пока норм.

НЛО прилетело и опубликовало эту надпись здесь
Надо добавить к процессам code-review, помимо проверки разработчиком, проверку преподавателем английского языка ;)
НЛО прилетело и опубликовало эту надпись здесь

"Поля data и errors в ответе не могут быть заполнены одновременно."


В GraphQL похожая схема (в Apollo) — точно такие же поля, которые даже называются точно также — data и errors.
Но там поля data и errors могут быть заполнены одновременно :)

НЛО прилетело и опубликовало эту надпись здесь

А что не так с такой проверкой?

НЛО прилетело и опубликовало эту надпись здесь
Наглядность и читаемость выше, кмк

По мелкому куску кода, который на скрине трудно составить какое-то впечатление. В конкретном моём случае параметр is_checked означал, что перед эти куском кода была проверка другой бизнес-логики и это был признак того, что она выполнилась. Но с другой стороны — "критикуешь — предлагай"?

НЛО прилетело и опубликовало эту надпись здесь

И зачем коды ответа в HTTP придумали...

А как отличить код ответа, который генерит система от кода ответа, который я могу сгенерировать сам?

Приведите пример проблемы

Пожалуйста. Пользователь обратился к вашему серверу. Ваш сервер обратился ко второму серверу и получил код ответа 500. Что же вернуть пользователю? )))

Код 500. Вам же никто мешает отдавать json, когда код ответа 500. Туда и пишите ваши


{
    userFriendlyMessage: "такой-то сервис не ответил", 
    errors: {/*...*/}
}

И как проверить, что про коду 500 клиент получит именно json, а не текстовое сообщение другого формата, которое отсылается клиенту при коде 500, который автоматически может быть сгенерирован вашим сервером?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий