ошибка и код ошибки это две отдельные вещи. Один определяет, что произошло, а другое определяет конкретный источник ошибки.
Наилучшим примером этого являются исключения, связанные с БД, где исключение SQL включает в себя код, определяющий причину ошибки, вызвавшую его.
Выполнение этого кода через перечисление или поле является конструктивным решением.Если у вас есть одно исключение бросить и добавить код ошибки к нему, оно может быть принято в качестве обработки на исключение два шага:
- Выгода исключение, которое определяет контекст ошибки
- безопасности
- Database
- Обработка
- Синтаксический
- Недопустимая операция
- Проверьте код исключения, чтобы определить источник
- пользователь не имеет достаточно привилегий, чтобы сделать то, что он пытался сделать
- базы данных Подключение errora
- Запрос вопросов, связанных с
- В настоящее время система перегружена
- нет менеджеров не найдено для определенной операции
Как только вы определили источник (код) и знаете его контекст (исключение), вы можете действовать соответствующим образом. ИМХО, иерархия - это хороший подход, который может быть дополнен кодом при необходимости. Просто имейте в виду, что есть влияние на ремонтопригодность и сложность, если вы дошли до того, чтобы подклассифицировать исключение 10 раз только для представления источника.
Сделайте каждую ошибку своим собственным типом, после того как вы поймаете ошибку, вам придется выяснить, что это такое с методом enum. – andre
Я бы выбрал иерархию типов исключений с общим суперклассом, поэтому вы можете поймать определенные, если хотите или поймать всех с помощью одного 'catch (ParentException e)' –