2013-11-29 2 views
0

При разработке приложения, у вас есть два варианта, как спроектировать исключения (IMO):исключение Проектирования в C# приложении

  • Вы либо создавать конкретные исключения для конкретных случаев и наследовать их от System.Exception или некоторые другие дочерние системные исключения.

  • Или вы создаете базовое исключение для своего приложения, которое наследуется, вероятно, из System.Exception, например MyAppException: System.Exception, а затем вы наследуете все пользовательские исключения из этого базового исключения.

Я не буду спрашивать, какой подход лучше вообще, потому что я не думаю, что есть четкий ответ. Однако я хотел бы знать, какой подход более подходит для приложений, например. один лучше для приложения winforms, а другой для библиотеки классов.

ответ

2

Нет четкого ответа. Независимо от типа приложения, бывают случаи, когда лучше бросать «общее» приложение (возможно, содержащее конкретное как InnerException), и бывают случаи, когда имеет смысл наследовать от существующего исключения.

Более важно рассмотреть, кто поймает исключения и что он должен с ними делать.

+1

Ну, я надеялся, что в отношениях «кто-что» или, по крайней мере, некоторые вопросы могут быть найдены определенные закономерности, которые можно было бы ответить самим, чтобы помочь разобраться в мыслях. – Santhos

+0

Действительно, я тоже надеялся на некоторое разъяснение. – AgentFire

+1

Подумайте, кто поймает исключения и что он может сделать. Если вы выполняете проверки диапазонов и т. Д., Исключение ArgumentException более чем достаточно, и все, кто может это сделать, это зарегистрировать его. С другой стороны, если кредитная карта не может быть проверена, вы должны бросить конкретное исключение из кодов состояния и объяснений, которые позволят кому-то продолжить сборку, чтобы решить, что делать - попробуйте другой банк или отклоните клиента? –

Смежные вопросы