На разных логических уровнях можно (и нужно) делать re-throw более общих типов исключений (с ссылкой на оригинал внутри), если нет возможности их обработать на месте. Например, TooLongNameException и NegativePriceException где-то выше станут ModelValidationException, т.е. там вам достаточно знать, что модель кривая, вне зависимости от того, по какой причине это произошло.
Может быть пример не самый удачный, ибо здесь наследование бы подошло. А вообще, большой список исключений - это косвенный признак того, что метод слишком много делает (S - SOLID).