❌ Exceptions ≠ Errors
Многие разработчики путают эти понятия и проектируют приложения неправильно. Давайте разберём:
Что такое исключение (exception)?
Это ситуация, из которой приложение не может восстановиться.
Пример: критическая ошибка базы данных, повреждённый файл конфигурации.
Что такое ошибка (error)?
Это ожидаемое состояние сбоя или невыполненное предусловие.
Пример: пользователь ввёл неверный пароль, файл не найден, запрос не прошёл валидацию.
👉 Использовать исключения вместо ошибок = анти-паттерн. Так появляется flow control через исключения, который делает код непредсказуемым и запутанным.
Как правильно:
- Ошибки представляем явно в коде (например, через
- Исключения оставляем для действительно неожиданных и фатальных ситуаций.
Бонус: Явные ошибки делают намерения кода прозрачными и облегчают поддержку.
📖 Подробнее: https://milanjovanovic.tech/blog/functional-error-handling-in-dotnet-with-the-result-pattern
#dotnet #cleanCode #architecture
Многие разработчики путают эти понятия и проектируют приложения неправильно. Давайте разберём:
Что такое исключение (exception)?
Это ситуация, из которой приложение не может восстановиться.
Пример: критическая ошибка базы данных, повреждённый файл конфигурации.
Что такое ошибка (error)?
Это ожидаемое состояние сбоя или невыполненное предусловие.
Пример: пользователь ввёл неверный пароль, файл не найден, запрос не прошёл валидацию.
👉 Использовать исключения вместо ошибок = анти-паттерн. Так появляется flow control через исключения, который делает код непредсказуемым и запутанным.
Как правильно:
- Ошибки представляем явно в коде (например, через
Result, Option, Either паттерны). - Исключения оставляем для действительно неожиданных и фатальных ситуаций.
Бонус: Явные ошибки делают намерения кода прозрачными и облегчают поддержку.
📖 Подробнее: https://milanjovanovic.tech/blog/functional-error-handling-in-dotnet-with-the-result-pattern
#dotnet #cleanCode #architecture