Size: a a a

2020 April 22

AW

Alex Wells in PHP
Sergey Protko
да, видел этих гениев которые пишут чето в стие

async fetchSomethingOrEmptyList() {
   try {
       return await fetch(`/foo-bar`)
   } catch (e) {
       return [];
   }
}


вместо

fetchSomethingOrEmptyList() {
   return fetch(`/foo-bar`).catch(() => [])
}
хотя вот так делать не надо. Пусть вываливается ошибка.
источник

SP

Sergey Protko in PHP
Евгений Ромашкан
Я думал мы о checked exception из Джавы которые нужно обрабатывать
да и не все исключения в джаве чект
источник

SP

Sergey Protko in PHP
Alex Wells
хотя вот так делать не надо. Пусть вываливается ошибка.
не тебе судить какой контракт удобнее для юзкейса
источник

ЕР

Евгений Ромашкан in PHP
Sergey Protko
да и не все исключения в джаве чект
Вопрос выше был про разницу result object и checked exception
источник

AW

Alex Wells in PHP
Sergey Protko
не тебе судить какой контракт удобнее для юзкейса
не важно какой. Ошибка не должна игнорироватся, а ты делаешь именно это.
источник

A

Aleksandr Khristenko in PHP
Евгений Ромашкан
Я думал мы о checked exception из Джавы которые нужно обрабатывать
У них будут все те-же минусы, что у Result, но не будет плюсов что есть у Result.
источник

AW

Alex Wells in PHP
Alex Wells
не важно какой. Ошибка не должна игнорироватся, а ты делаешь именно это.
есть кейсы, когда должна, но они единичные и должны быть дополнительные проверки на конкретную ошибку, а не тупо catch()
источник

SP

Sergey Protko in PHP
Alex Wells
есть кейсы, когда должна, но они единичные и должны быть дополнительные проверки на конкретную ошибку, а не тупо catch()
ну ты ж понимаешь что я просто пример написал, в реальности ошибка будет репортиться во всякие сэнтри и прочее
источник

SP

Sergey Protko in PHP
если это вообще ошибка а не "бэкэндщик тоже молодец и возвращает 500 если запись не найдена"
источник

AW

Alex Wells in PHP
Sergey Protko
ну ты ж понимаешь что я просто пример написал, в реальности ошибка будет репортиться во всякие сэнтри и прочее
как будет, если ты ее словил?)
источник

SP

Sergey Protko in PHP
Alex Wells
как будет, если ты ее словил?)
как того требует ситуация
источник

AW

Alex Wells in PHP
Sergey Protko
если это вообще ошибка а не "бэкэндщик тоже молодец и возвращает 500 если запись не найдена"
да какая разница какая ошибка? Если <= 299, то ее нужно как-то обработать, и в 99% случаев это сентри и какой-то обобщенный еррор для юзера. Надо кастом - пожалуйста, лови конкретную ошибку которую ты ожидаешь и пляши, а остальное оставь общему обработчику
источник

AW

Alex Wells in PHP
Sergey Protko
как того требует ситуация
ну она же не пойдет по стэку, ты же все их словил разом. Вылезла неожиданная хрень - пофиг, отдадим пустой массив? Нет, это не нормально почти всегда
источник

k

knopkod4v in PHP
прям захотелось на этих ваших растах попесать, чтоб понять в чём разница 🤔
источник

DM

Dmitry MiksIr in PHP
Чаще всего нормальная ситуация как раз. Залогировать и деградировать функционал, оставив основной функционал рабочим
источник

AW

Alex Wells in PHP
Dmitry MiksIr
Чаще всего нормальная ситуация как раз. Залогировать и деградировать функционал, оставив основной функционал рабочим
и.е. забить хер на проблему?) Допустим, при пустом списке нужно показывать заглушку юзеру, мол, "у вас нет ни одного *чего-то там*. Добавьте их тут *кнопка*". Вот добавил фронтэндер такую заглушку с проверкой на пустой массив. Бэкэнд вернул ошибку валидации, потому что на фронте что-то не так отправилось, а юзеру показывается что у него ничего нет?

И тут он идет в саппорт и начинает орать, куда же пропали его айтемы, вместо того, что бы изначально увидеть какой-нить "oops, something went wrong. Please, contact support".
источник

AW

Alex Wells in PHP
Нерабочий функционал без каких-либо признаков - это намного хуже, чем юзеро-понятный еррор.
источник

DM

Dmitry MiksIr in PHP
какой-то понос мыслей
а если да кабы
посыл простой - залогировать и деградировать где возможно
если у тебя из-за, наример, запроса в сервис аналити упадет все приложение и клиент не сделает заказ - это повод подумать о проф пригодности
ибо твоя задача, как программиста, не обрабатвать ошибки, а что бы клиент сделал заказ
а уже что и куда логировать и как деградировать - вопрос каждой конкретной точки приложения
источник

AW

Alex Wells in PHP
Dmitry MiksIr
какой-то понос мыслей
а если да кабы
посыл простой - залогировать и деградировать где возможно
если у тебя из-за, наример, запроса в сервис аналити упадет все приложение и клиент не сделает заказ - это повод подумать о проф пригодности
ибо твоя задача, как программиста, не обрабатвать ошибки, а что бы клиент сделал заказ
а уже что и куда логировать и как деградировать - вопрос каждой конкретной точки приложения
какой понос? Вполне конкретная и реальная ситуация.

Я не предлагаю игнорировать ошибки, я предлагаю обрабатывать их ЦЕНТРАЛИЗОВАНО, а не в каждом конкретном юс кейсе. Приложение падать не будет.
источник

DM

Dmitry MiksIr in PHP
не понял, как ты централизованно обработаешь исключение так, что бы твое флоу программы продолжило выполняться с нужной тебе точки?
источник