Вернуться к статьям

Два вида ошибок: один — баг, другой — сюрприз

9 мая 2026
2 мин чтения
Два вида ошибок: один — баг, другой — сюрприз

Разработчики делят ошибки на два типа: те, что можно исправить, и те, что нужно принять.

Разработчики делят ошибки на два типа: те, что можно исправить, и те, что нужно принять.

Ошибка vs. Ошибка

В программировании есть два принципиально разных вида ошибок. Первый — это баг: вы что-то накодили не так, и программа падает. Второй — это неопределенность: вы не можете предсказать, что введет пользователь или какой будет ответ API. Первое — ваша вина, второе — реальность.

Как отличить?

  • Баг: TypeError: undefined is not a function. Вы забыли проверить, что объект существует.
  • Сюрприз: пользователь ввел эмодзи в поле для номера карты. Вы этого не ожидали, но это не баг — это жизнь.

Многие начинающие разработчики пытаются обработать все возможные сценарии, превращая код в крепость с сотней if. Но правда в том, что некоторые ошибки нужно просто логировать и идти дальше. Иначе ваш код станет похож на сборку IKEA без инструкции — вы будете добавлять детали, пока не закончатся болты.

Что делать?

  • Для багов: тесты, код-ревью, мониторинг.
  • Для сюрпризов: валидация на входе, fallback-значения и принятие того, что вы не боги.

Комментарий студии METABYTE: Мы тоже любим ловить баги, но сюрпризы от пользователей — это отдельный вид искусства. Хотите меньше сюрпризов? Давайте обсудим валидацию и обработку ошибок на следующем созвоне — кофе за наш счет.

Два вида ошибок в программировании | METABYTE — METABYTE