Однажды при работе с крупной кодовой базой одного фронтенд-приложения я заметил, что функционал постепенно группируется относительно команд (доменов). Каждая из таких групп функционала постепенно накладывает собственные ограничения на архитектуру. Как оказалось, обработка ошибок при сравнении кода двух разных команд неоднородна. В одном случае разработчики структурировали ошибки стандартным наследованием JS/TS, в другом были использованы перехваты возникающих ошибок и логирование.
Рубрика «обработка ошибок»
conway-errors: порядок в ошибках как часть архитектуры проекта
2025-10-29 в 9:16, admin, рубрики: архитектура приложений, бэкенд, обработка ошибок, ошибки, ошибки в коде, фронтендХватит писать try-catch вокруг fetch: история о том, как я устал ловить ошибки
2025-09-04 в 5:20, admin, рубрики: Axios, fetch, http запросы, javascript, open source, retry, TimeOut, TypeScript, обработка ошибок
Этот мем смешной, пока не осознаешь, что в реальных проектах мы именно так и поступаем. Только заворачиваем не весь код сразу, а каждый HTTP-запрос по отдельности.
Пишешь fetchЧитать полностью »
Обработка ошибок Axios
2025-01-29 в 11:15, admin, рубрики: Axios, javascript, React, react.js, TypeScript, обработка ошибокПривет, меня зовут Алёна, я senior фронтент-разработчик в отдела разработки ПО для розничного бизнеса в Райффайзенбанке. Недавно наша команда решила улучшить пользовательский опыт обработки ошибок запроса к бекенду и я решила комплексно исследовать эту тему и собрать воедино все лучшие практики.
Начтем с того, что при обработке ошибок Axios запросов существуют 4 ситуации, которые необходимо по-разному интерпретировать:
-
Запрос был обработан сервером и статус ответа сервера вне диапазона 2xx
-
Запрос был сделан, но ответ не был получен.
-
Ошибка возникла из-за неправильных настроек Axios.
Использовать unwrap() в Rust — это нормально
2023-03-19 в 18:51, admin, рубрики: Rust, обработка ошибок, паника, ПрограммированиеПредисловие
Сравнительно недавно на Хабре была опубликована статья «Rust: ни в коем случае не используйте unwrap() в продакшене». Мягко говоря, тезисы, высказываемые в данной статье, спорны и содержат мало обоснования. Предлагаю читателям взглянуть на альтернативную точку зрения: почему использовать unwrap() в Rust — это нормально (в том числе и в продакшене). Автор оригинальной статьи — Эндрю Галлант.
Использовать unwrap() в Rust — это нормально
За день до выпуска Rust 1.0 я опубликовал запись в блоге, посвященную Читать полностью »
О чём тут не будет: напоминания базовых конструкций языка и основных моментов о том, как с ними работать; подробного разбора, как работают исключения (писали тут и тут); как грамотно спроектировать ваш класс/программу, чтобы не наломать дров в будущем с гарантией исключений (разве что совсем чуть-чуть, хотя я сам и не очень-то тук-тук).
О чём будет: разные способы обработки ошибок в C++, несколько советов от сообщества и немного заметок о различных жизненных (и не очень) ситуациях.
Текущее состояние дел
NEST.JS. Работа с ошибками. Мысли и рецепты
2021-03-14 в 7:21, admin, рубрики: backend, exceptions, javascript, NEST, nest.js, nestjs, Node, node.js, node.js фреймворки, nodejs, обработка ошибок, ПрограммированиеХоливар...
Одни умные люди говорят: "эксепшены - это зло, используйте монады!", другие кричат: "коды ошибок ещё никто не отменял!", а третьи включают механизм исключений в языки программирования.. Однако, у большинства статей, который попадались мне на глаза, есть (при всём уважении к авторам!) два проблемных момента:
-
Некоторая... академичность. Разобрано много и интересно, но заканчивается всё стандартным: "ваш выбор зависит от вашей ситуации".
-
Абсолютно отсутствуют упоминания о бюджете. Никто же не будет спорить, что теоретически мерседес лучше, чем восьмёрка по всем показателям кроме.. цены.
Где ошибка, Билли? Нам нужна ошибка…
2019-10-22 в 8:21, admin, рубрики: funcorp, Блог компании FunCorp, обработка ошибок, Программирование
Некоторое время назад мой коллега опубликовал статью про обработку ошибок в Java/Kotlin. И мне стало интересно, а какие вообще в программировании существуют способы передачи ошибок. Если вам тоже интересно, то под катом результат изысканий. Скорее всего, какие-то экзотические методы пропущены, но тут одна надежда на комментарии, которые на Хабре порою бывают интереснее и полезнее самой статьи. :)
Читать полностью »
Бережная обработка ошибок в микросервисах
2019-07-08 в 5:05, admin, рубрики: clean architecture, Go, обработка ошибокВ статье показано, как в Go реализовать обработку ошибок и логирование по принципу "Сделал и забыл". Способ расчитан на микросервисы на Go, работающие в Docker-контейнере и построенные с соблюдением принципов Clean Architecture.
Элегантная обработка ошибок в JavaScript с помощью монады Either
2019-06-21 в 13:43, admin, рубрики: Crocks, Folktale, javascript, Monet, sanctuary, каррирование, монады, обработка ошибок, полиморфизм, ПрограммированиеДавайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобраться со всеми исключениями в разделе catch. Неплохой вариант. Это позволяет сосредоточиться на текущей задаче, не думая о каждой возможной ошибке. Определённо лучше, чем засорять код бесконечными if.
Без try...catch трудно проверять результаты каждого вызова функции для неожиданных значений. Это полезная конструкция. Но у неё есть определённые проблемы. И это не единственный способ обрабатывать ошибки. В статье мы рассмотрим использование монады Either в качестве альтернативы try...catch.
Прежде чем продолжить, отмечу пару моментов. Статья предполагает, что вы уже знаете о композиции функций и каррировании. И предупреждение. Если вы раньше не сталкивались с монадами, они могут показаться действительно… странными. Работа с такими инструментами требует изменить мышление. Поначалу это бывает тяжело.
Не волнуйтесь, если сразу запутались. У всех так. В конце статьи я перечислил несколько ссылок, которые могут помочь. Не сдавайтесь. Эти штуки опьяняют, как только проникают в мозг.
Читать полностью »
Практичный Go: советы по написанию поддерживаемых программ в реальном мире
2019-02-26 в 20:09, admin, рубрики: Go, архитектура API, идентификаторы, имена пакетов, обработка ошибок, структура пакетовСтатья посвящена лучшим практикам написания кода Go. Она составлен в стиле презентации, но без обычных слайдов. Постараемся кратко и чётко пройтись по каждому пункту.
Для начала следует договориться, что значит лучшие практики для языка программирования. Здесь можно вспомнить слова Расса Кокса, технического руководителя Go:
Программная инженерия — то, что происходит с программированием, если добавить фактор времени и других программистов.
Таким образом, Расс различает понятия программирования и программной инженерии. В первом случае вы пишете программу для себя, во втором создаёте продукт, над которым со временем будут работать и другие программисты. Инженеры приходят и уходят. Команды растут или сокращаются. Добавляются новые функции и исправляются ошибки. Такова природа разработки программного обеспечения.
Читать полностью »
