С другой стороны, верно и обратное про человеческий фактор - в какой-то момент аргумент может начать приходить по ссылке, а не по значению (поменяется его тип, например, если речь про js) и тогда менять его не стоит.
Ты подключил класс для преобразования ошибок в исключения, вызвал пользовательскую ошибку, завернул это в перехватчик исключений, вывел сообщение об ошибке