Правильный способ проверки часового пояса .NetC#

Место общения программистов C#
Anonymous
Правильный способ проверки часового пояса .Net

Сообщение Anonymous »

У меня есть метод, который принимает идентификатор часового пояса .Net (или Windows) в виде строки:

Код: Выделить всё

public void SaveTimezoneId(string timezoneId) { ... }
Как вы, возможно, знаете, часовые пояса в .Net представляют собой такие строки:
  • Арабское стандартное время
  • Русское стандартное время
  • Центральное стандартное время Канады
и т. д.

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

Код: Выделить всё

    try
{
TimeZoneInfo.FindSystemTimeZoneById(timezoneId);

CurrentUser.TimezoneId = timezoneId;
context.SaveChanges();

return JsonSuccess();
}
catch(Exception)
{
return JsonError("Invalid time zone");
}
Но это полностью нарушает один из главных принципов хорошей разработки программного обеспечения: никогда не полагаться на исключения. Более того, исключения обходятся дорого.

Есть ли другой способ выполнить эту проверку и избавиться от try-catch?

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/206 ... validation

Вернуться в «C#»