Где должны храниться сообщения об исключениях - PullRequest
12 голосов
/ 24 января 2009

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

Я полагаю, что это, вероятно, одно из общих мест, о которых я думал

  • Файл ресурсов по умолчанию
  • Локальная постоянная
  • Константа класса
  • Глобальный класс сообщений об исключениях
  • Встроенный как строковые литералы

Ответы [ 4 ]

16 голосов
/ 24 января 2009

Я могу быть застрелен (ну, за голосование) за это, но почему бы не "где вы создаете исключение"?

throw new InvalidDataException("A wurble can't follow a flurble");

Если вы не собираетесь интернационализировать сообщения об исключениях (, которые, я полагаю, вы не ), вам особенно нужны, чтобы они были константами и т. Д.? Где выгода?

1 голос
/ 24 января 2009

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

throw new InvalidOperationException("The Nacho Ordering system is not responding.");

может стать

throw new SystemNotRespondingException("Nacho Ordering");

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

0 голосов
/ 24 января 2009

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

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

0 голосов
/ 24 января 2009

По необходимости? Это для облегчения локализации. Локализовать сообщения об ошибках в ваших приложениях - это отличный способ.

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