Меня искренне изумляют ребята, которые обходят исключения стороной. Типа, вернем null и запишем в лог. Или вернем мапу {"success": false}. Или кортеж (nil, "error"). Или еще какой-то финт ушами.

Мне интересно: а кто будет читать логи? Тот чел, который молча пишет в лог, у него что, в договоре прописано каждое утро их читать? С какой частотой? И что делать, если логи нашлись? Как реагировать? И кто следит, чтобы он их читал?

Или какой-то калека вернул мапу {"success": false}. Что с ней делать? Какая была ошибка? В каком направлении двигаться? Просто неопытный разработчик переложил на других то, что должен делать сам.

Замалчивание ошибок — признак неопытности программиста. В единичном случае это еще не страшно. Но когда каждая строчка возвращает null или мапу вместо ошибки, работать невозможно. Приходиться писать строгие обертки вокруг таких функций, которые кидают исключение с понятным сообщением: что я собирался делать и что пошло не так.

Один коллега предложил: давай я буду возвращать сообщение об ошибке, если файла нет? Я аж чуть кофе не выплюнул: минуточку, все это время ты молчал о том, что файла нет? Блин, уж будь добр, потрудись сообщить о проблеме.

При либом отклонении от нормы нужно кидать исключение с максимально детальным текстом. Вот, вобщем-то, простой секрет хорошего кода.