Задать вопрос
@zlodiak

Нужно ли всегда использовать try/except?

Иногда бывает трудно найти баланс между лаконичностью кода и использованием проверок типа try/except. Помогите пожалуйста понять что является лучшей практикой в следующем случае.

Есть форма регистрации, фреймворк сам проверяет её валидность таким образом, что в контроллере создание нового пользователя сводится к выполнению такого кода:
if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()


Понятно, что если форма прошла валидацию, то можно смело делать запись в БД, как показано выше. Но у меня всегда появляется смутное желание добавить блок try/except:

try:
    db.session.add(user)
    db.session.commit()
except bla bla as e:
    db.session.rollback()
    raise bla bla


Будет ли хорошей практикой поступать так в подобных случаях? Не лишний ли это код?

PS:
Можно даже строку
user = User(username=form.username.data, email=form.email.data)
тоже заключить в блок try/except
  • Вопрос задан
  • 239 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
@Fixid
ИМХО: любые опасные операции и особенно работа с базой должны быть обернуты в try/except. Не каждой либе-прослойке можно верить что она все провалидирует как хочется
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы