т.е. получается надо использовать исключения либо по причине качества кода, либо чтобы долго не искать причину в большом проекте... Исправлять некорректные данные? Разве это не ведет к некачественному коду, если мы говорим о внутренних данных? В любом случае советы довольно нечеткие. Я например не понял, когда наступает must have, и насколько полный этот must have. В каких конкретно случаях их использовать, в каких не использовать. Проверять все параметры или выборочно. Насколько тщательно их проверять. Понял только основную суть: бывает нужно
Я тебе советую сейчас не использовать исключения. В результате, если, например, ты начнешь
часто себя заставать за тем, что долго ищешь причину ошибки, у тебя будут конкретные примеры под рукой и ты сможешь принять более удачное решение
(выработать какие-то конкретные правила, например, или выяснишь, что все потому что что-то там написано как попало), чем будешь сейчас использовать исключения на всякий случай.