Я был в обеих ситуациях:
- Создание слишком большого количества пользовательских исключений
- Использование слишком большого общего класса Exception
В обоих случаях проект начал нормально, но вскоре он стал накладным для поддержки (и рефакторинга).
Итак, какова наилучшая практика создания ваших собственных классов исключений?