Чтобы генерировать исключения, я обычно использую встроенные классы исключений, например, ArgumentNullExceptionи NotSupportedException. Однако иногда мне нужно использовать пользовательское исключение, и в этом случае я пишу:
class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }
и так далее. Затем я бросаю и ловлю их в своем коде. Но сегодня я наткнулся на ApplicationExceptionкласс - должен ли я использовать это вместо этого? Для чего это?
Кажется неэффективным иметь множество эффективно идентичных классов исключений с разными именами (мне обычно не нужны какие-то отдельные функции). Но мне не нравится идея поймать универсальный ApplicationExceptionи использовать дополнительный код для определения ошибки.
Где должен ApplicationExceptionсоответствовать мой код?