Без исключений
Меня искренне изумляют ребята, которые обходят исключения стороной. Типа, вернем
null
и запишем в лог. Или вернем мапу {"success": false}
. Или кортеж (nil,
"error")
. Или еще какой-то финт ушами.
Мне интересно: а кто будет читать логи? Тот чел, который молча пишет в лог, у него что, в договоре прописано каждое утро их читать? С какой частотой? И что делать, если логи нашлись? Как реагировать? И кто следит, чтобы он их читал?
Или какой-то калека вернул мапу {"success": false}
. Что с ней делать? Какая
была ошибка? В каком направлении двигаться? Просто неопытный разработчик
переложил на других то, что должен делать сам.
Замалчивание ошибок — признак неопытности программиста. В единичном случае это
еще не страшно. Но когда каждая строчка возвращает null
или мапу вместо
ошибки, работать невозможно. Приходиться писать строгие обертки вокруг таких
функций, которые кидают исключение с понятным сообщением: что я собирался делать
и что пошло не так.
Один коллега предложил: давай я буду возвращать сообщение об ошибке, если файла нет? Я аж чуть кофе не выплюнул: минуточку, все это время ты молчал о том, что файла нет? Блин, уж будь добр, потрудись сообщить о проблеме.
При либом отклонении от нормы нужно кидать исключение с максимально детальным текстом. Вот, вобщем-то, простой секрет хорошего кода.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter