При разработке приложения, у вас есть два варианта, как спроектировать исключения (IMO):исключение Проектирования в C# приложении
Вы либо создавать конкретные исключения для конкретных случаев и наследовать их от System.Exception или некоторые другие дочерние системные исключения.
Или вы создаете базовое исключение для своего приложения, которое наследуется, вероятно, из System.Exception, например MyAppException: System.Exception, а затем вы наследуете все пользовательские исключения из этого базового исключения.
Я не буду спрашивать, какой подход лучше вообще, потому что я не думаю, что есть четкий ответ. Однако я хотел бы знать, какой подход более подходит для приложений, например. один лучше для приложения winforms, а другой для библиотеки классов.
Ну, я надеялся, что в отношениях «кто-что» или, по крайней мере, некоторые вопросы могут быть найдены определенные закономерности, которые можно было бы ответить самим, чтобы помочь разобраться в мыслях. – Santhos
Действительно, я тоже надеялся на некоторое разъяснение. – AgentFire
Подумайте, кто поймает исключения и что он может сделать. Если вы выполняете проверки диапазонов и т. Д., Исключение ArgumentException более чем достаточно, и все, кто может это сделать, это зарегистрировать его. С другой стороны, если кредитная карта не может быть проверена, вы должны бросить конкретное исключение из кодов состояния и объяснений, которые позволят кому-то продолжить сборку, чтобы решить, что делать - попробуйте другой банк или отклоните клиента? –