1. C# / Говнокод #19337

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (string.IsNullOrWhiteSpace(frmDelegatorLogin.ViewModel.Username))
                    throw new Exception("Не введен логин");
                if (dbEmployee == null)
                    throw new Exception(string.Format("Не найден пользователь с логином \"{0}\"", frmDelegatorLogin.ViewModel.Username));
                if (dbEmployee.DelegatePassword != frmDelegatorLogin.ViewModel.Password)
                    throw new Exception("Указан неверный пароль");

    Вот такой вот новый метод валидации полей. Да, логин и пароль вводятся текстом, да, Exception потом ничем не ловится и пользователь получает unhandeled exception...

    Запостил: kerman, 20 Января 2016

    Комментарии (8) RSS

    • Нормальный код вроде.
      Раве что, пароль хранится в открытом виде
      Ответить
      • За исключением того, что метод bool (возвращает, залогинились или нет)
        Ответить
        • > возвращает, залогинились или нет
          Возвращает true, если залогинились, а если нет - ничего не возвращает (т.к. исключение)?
          Ответить
          • Точно. И, как следствие, ПО падает с ошибкой вместо простого мессаджбокса "неправильный пароль или логин".
            Ответить
        • код портировался откудато? и бул оставили как дань предкам?
          Ответить
          • Не портировался. Это наш сумрачный гений написал с нуля. Заодно изобрёл новый подход - validation thru exception. Я ему предложу сразу диск ц форматировать, чо уж там...
            Ответить
    • Держите таблэтку
      http://martinfowler.com/articles/replaceThrowWithNotification.html
      Ответить
      • Спасибо за ссыль, таблэтка отправлена поциенту.
        Ответить

    Добавить комментарий