Слишком много специализированных исключений;это проблема? - PullRequest
1 голос
/ 14 марта 2011

Существует ли потенциальная проблема с большим количеством различных исключений, если все они получены из какого-то конкретного исключения пакета? Например, у меня есть FooException. Оттуда у меня тогда есть OutOfRangeOfSomethingException, RanOutOfBufferException, OverflowMapBoundaryException из базы этого пакета FooException. Я знаю, что наличие этой базы позволяет пользователям и мне

try:
    #stuff
except FooException:
    #Catch all my exceptions, but let default Python ones still raise

Но есть ли другие проблемы с этим? Должен ли я попробовать несколько более обобщенных исключений или множество конкретных?

N.B. В частности, я говорю о возможности использования в более чем одном месте. Я не планирую иметь IntWasSlightlyTooLargeForInitializationOfMemoryObjectException.

1 Ответ

4 голосов
/ 14 марта 2011

Чем больше типов исключений у вас есть, тем больше типов исключений вы должны поддерживать. Это зависит от того, насколько детализирован контроль за вашими исключениями, а не от того, сколько вы хотите продолжать поддерживать этот мелкий уровень по всей доске. Нет реальной потери производительности за более богатую иерархию исключений, вопрос в том, действительно ли полезно иметь что-то столь глубокое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...