выявлять и обрабатывать специальную исключительную ситуацию, чтобы избежать
применения условной логики, или если необходимо включить дополнительные данные для
выполнения определенного требования.
Если все-таки приходится создавать собственные классы исключений, применяйте в них
стандартные конструкторы, включая конструктор сериализации, и обязательно заканчивайте
имя класса словом «Exception» (Исключение). Это важно для обеспечения интеграции со
стандартным механизмом исключений. Реализуйте собственное исключения путем
наследования от подходящего более общего исключения и его специализации соответственно
конкретным требованиям.
В общем, при проектировании стратегии управления исключениями вы должны создавать
иерархию исключений и организовывать собственные исключения в ее рамках. Это поможет
пользователям быстро анализировать и прослеживать возникающие проблемы. В собственных
исключениях должен быть указан слой, в котором было сформировано исключение,
компонент, в котором, возможно, возникло исключение, и тип сформированного исключения
(такой как исключение безопасности, бизнес-логики или системное исключение).
Храните иерархию исключений приложения в отдельной сборке, на которую может ссылаться
код приложения. Это поможет централизовать управление и развертывание классов
исключений. Также продумайте, как будет выполняться передача исключений через
физические границы, границы процессов или AppDomain. Классы .NET Framework Exception
поддерживают сериализацию. При проектировании собственных классов исключений
обеспечьте, чтобы они также поддерживали сериализацию.
Шаг 5 – Выбор соответствующих данных для сбора
Один из наиболее важных аспектов при обработке исключений – правильный выбор стратегии
сбора данных исключения. Перехватываемые сведения должны точно представлять условие
возникновения исключения. Также они должны быть значимыми и информативными для
аудитории. Можно выделить три категории аудитории: конечные пользователи, разработчики
приложения и операторы. На основании сценария и индивидуального контекста установите,
кому адресовано исключение.
Для конечных пользователей требуется осмысленное и хорошо представленное описание. При
сборе данных исключения для конечных пользователей позаботьтесь, чтобы они были поданы
в виде понятного пользователям сообщения, описывающего природу ошибки и
предлагающего пути восстановления после такой ошибки, если это возможно. Разработчикам
приложения необходимы более подробные сведения, которые помогут в диагностике
проблемы.
Разработчикам приложения необходимы данные о точном месте возникновения исключения в
коде, а также такие сведения, как тип исключения и состояние системы в момент
возникновения исключения. Операторам службы поддержки должна предоставляться
соответствующая информация, которая позволит им реагировать соответствующим образом и
предпринять необходимые шаги по восстановлению системы после ошибки. При сборе
данных исключения для операторов службы поддержки обеспечьте сведения, которые
помогут им найти людей, которых они должны уведомить об исключении, и информацию,
которую они должны будут передать для решения проблемы.