Щоб кинути винятки, я зазвичай використовую вбудовані класи виключень, наприклад, ArgumentNullExceptionта NotSupportedException. Однак іноді мені потрібно використовувати спеціальний виняток, і в такому випадку я пишу:
class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }
і так далі. Потім я кидаю і ловлю їх у своєму коді. Але сьогодні я натрапив на ApplicationExceptionзаняття - чи варто використовувати це замість цього? Для чого це?
Це здається неефективним мати безліч ефективно однакових класів винятків з різними іменами (мені зазвичай не потрібні окремі функціональні можливості). Але мені не подобається ідея ловити загальне ApplicationExceptionта використовувати додатковий код, щоб визначити, у чому помилка.
Де має ApplicationExceptionвідповідати моєму коду?