Яка різниця між операційними та помилками програміста?
Операційні помилки (operational errors) – це очікувані помилки, які можуть виникнути під час виконання програми. Це не обов’язково помилки, а зовнішні обставини, які можуть порушити процес виконання програми. Їх необхідно обробляти. Ось деякі приклади операційних помилок:
– сервер отримав недійсні дані, наприклад недійсну електронну адресу
– мікросервіс не відповів
– на кредитній картці недостатньо грошей
Помилки програміста (programmer errors) — це помилки в логіці або синтаксисі програми, які можна виправити, лише змінивши вихідний код. Ці типи помилок не можна обробляти. Приклади:
– класика "Cannot read properties of undefined"
– SyntaxError
– помилка в SQL
⚠️Найважливіше⚠️ не оброблена операційна помилка перетворюється на помилку програміста.
Наведу ще коротке порівняння для Node.js runtime.
Операційні помилки:
– Рівень логування: warn
– Error stack trace: не обов'язковий
– http коди відповіді: 4xx, 502, 504
– error tracing/collecting: не потрібно. Використовується агрегація логів
Помилки програміста:
– Рівень логування: error/fatal
– Error stack trace: обов'язковий
– http коди відповіді: 500
– error tracing/collecting: за допомогою sentry/stackdriver/etc
Post #568
2.57K
- 👍 40