Должен ли я создать приватную статическую final String = "Сообщение об исключении" или оставить его внутри кода? - PullRequest
4 голосов
/ 16 марта 2010

Должен ли я создать приватное статическое final final String = "Сообщение об исключении" или оставить его внутри кода? Есть ли проблемы с производительностью? У меня много исключительных случаев. Тексты в основном разные в каждом конкретном случае. Остерегайтесь проблем с производительностью и памятью. Интернационализация вполне возможна в будущем.

Ответы [ 3 ]

6 голосов
/ 16 марта 2010

Нет разницы с точки зрения производительности.

Итак, для удобства чтения, и если вы не используете эту строку в другом месте - оставьте ее внутри кода.

Что касается интернационализации - я против идеи исключений i18n, но если вы сделаете это:

  • создать исключение с помощью ключа сообщения (из класса с static final ключами сообщения).
  • разрешить соответствующее сообщение только тогда, когда необходимо отобразить исключение.
2 голосов
/ 16 марта 2010

Исключением из ответов от Божо и Тило, IMO, является случай, когда вы используете сообщение об исключении более чем в одном месте. Если вы собираетесь переместить одно сообщение в конечную статическую строку, сделайте это для всех исключений в этом файле для согласованности. Если кто-то найдет одно сообщение об исключении в верхней части файла, логика предполагает, что все они могут быть найдены там.

2 голосов
/ 16 марта 2010

Если вы используете его только в одном месте и не планируете обеспечивать интернационализацию, оставьте его встроенным.

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

Если вам нужно локализовать сообщение, перенесите его в файл ресурса сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...