Обработка ошибок. Всё плохо, сплошной кринж и карго-культ. Начиная с вступления, которое явно бездумно переписано с какого-то мусорного источника. исключения надо обрабатывать. Вот только пихать везде try...catch к нормальной обработке исключений не имеет ни малейшего отношения. исключение либо вообще не нужно, либо его можно точно так же обработать централизованно, без замусоривания кода бессмысленными try...catch. "Исключение с ошибкой валидации" — это бессмыслица, оксюморон. Исключение может возникнуть, если функция, которая уже использует данные, не может этого сделать. То есть, не может выполнить свою функцию. А при валидации возникает не ошибка, а собственно результат — валидные данные, или нет. Поскольку валидация и является функцией функции. И выбрасывать исключение она будет только если не может провалидировать данные. Но не тогда, когда может, и видит, что они не валидные. Вообще, рассуждая о ловле исключений, приучайтесь всегда упоминать конкретный сценарий обработки. Потому