Я где-то читал (сейчас не могу найти), что большие иерархии исключений - пустая трата времени. В то время это утверждение казалось обоснованным, и идея застряла у меня.
В моем собственном коде, когда у меня есть кодовая база, которая может иметь диапазон состояний ошибки, я использую одно исключение с элементом перечисления, чтобы различать их.
Если возникает случай, когда мне нужно поймать одну из этих ошибок, я ловлю ее, проверяю enum и перебрасываю, если это не то, что я ожидал. В идеале это должно быть редко.
Я снова работал с исключениями, и у меня был задумчивый момент, когда я подверг сомнению свои привычки исключений. Мне интересно, что все остальные делают и почему?
Иерархия или одно исключение с элементами данных.
Кстати, я предполагаю, что вы согласны с идеей исключения против кодов ошибок. Я не хочу открывать эту банку с червями.