Хранение сообщений об исключениях в глобальном местоположении - PullRequest
1 голос
/ 04 января 2011

Я хотел бы иметь одно место, где хранятся сообщения об исключениях (они не предназначены для пользователя). У меня также есть некоторые исключения, которые могут иметь разные сообщения об ошибках и коды. Эти коды предназначены только для документирования и связи. Тем не менее, наличие всех сообщений об ошибках в одном месте очень полезно для ссылки на ошибки и предоставления предлагаемых исправлений для тех, кто занимается операциями

Я рассматриваю это:

  1. Resourcebundle для всех сообщений об исключениях
  2. глобальное перечисление с каждым перечислением, содержащим сообщение и код
  3. enum внутри каждого класса Exception, каждый с сообщением и кодом, который может иметь исключение.

Какой вариант лучше?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Я не могу предложить сделать что-либо из этого. Если вы хотите дать операторам что-то для чтения, используйте некую форму Javadoc или doclet , чтобы создать документ, содержащий все сообщения об исключениях в вашей системе. Вы даже можете использовать Doxygen .

Создавая один файл с каждым сообщением / кодом исключения, вы связали весь свой код, создав монолитную программу через этот единственный файл. Обязательно будут части вашей системы, которые не должны включать исключения SQL или исключения пользовательского интерфейса, которые не должны иметь доступа к исключениям SQL.

1 голос
/ 04 января 2011

Пакет ресурсов и перечисление не решают одну и ту же часть проблемы. Для локализации вам понадобится как экстернализация текста (это ресурсный пакет или аналогичный), так и какой-то способ определения типа сообщения. Перечисление - хороший способ отследить тип сообщения, если ваша система не расширяема (вы контролируете все типы исключений). Перечисление не будет хорошим типом, если другие могут расширить вашу систему, поскольку у них не будет возможности добавлять новые коды. Я рекомендую использовать строки для типа исключения, так как это легко поддается разбиению пространства имен, когда это необходимо.

...