Подтвердить что ты не робот

Где хранятся сообщения об исключении

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

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

  • Файл ресурсов по умолчанию
  • Локальная константа
  • Постоянная класса
  • Класс глобальных исключений
  • Inline как строковые литералы
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

может стать

throw new SystemNotRespondingException("Nacho Ordering");

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

Ответ 3

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

Ответ 4

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

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