Хранение сообщений об исключениях в глобальном местоположении
Я хотел бы иметь одно место, где хранятся сообщения об исключениях (они не предназначены для пользователя). У меня также есть некоторые исключения, которые могут иметь разные сообщения об ошибках и коды. Эти коды предназначены только для документирования и связи. Тем не менее, наличие всех сообщений об ошибках в одном месте очень полезно для ссылки на ошибки и предоставления предлагаемых исправлений для оперативных сотрудников.
Я рассматриваю это:
- Resourcebundle для всех сообщений об исключениях
- глобальное перечисление с каждым перечислением, содержащим сообщение и код
- enum внутри каждого класса Exception, каждый с сообщением и кодом, который может иметь исключение.
Какой самый лучший вариант?
2 ответа
Ресурсный пакет и перечисление не решают ту же самую часть проблемы. Для локализации вам потребуется как экстернализация текста (это ресурсный пакет или аналогичный), так и какой-то способ определения типа сообщения. Перечисление - хороший способ отследить тип сообщения, если ваша система не расширяема (вы контролируете все типы исключений). Перечисление не будет хорошим типом, если другие могут расширить вашу систему, поскольку у них не будет возможности добавлять новые коды. Я рекомендую использовать строки для типа исключения, так как это легко поддается разделению пространства имен, когда это необходимо.
Я не могу предложить сделать что-либо из этого. Если вы хотите дать операторам что-то для чтения, используйте какую-то форму Javadoc или doclet для создания документа, содержащего все сообщения об исключениях в вашей системе. Вы могли бы даже использовать Doxygen.
Создавая один файл с каждым сообщением / кодом исключения, вы связали весь свой код, создав монолитную программу через этот единственный файл. Там будут обязательно части вашей системы, которые не должны включать исключения SQL или исключения пользовательского интерфейса, которые не должны иметь доступа к исключениям SQL.