Задать вопрос
@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
  • Вопрос задан
  • 230 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
@Fixid
ИМХО: любые опасные операции и особенно работа с базой должны быть обернуты в try/except. Не каждой либе-прослойке можно верить что она все провалидирует как хочется
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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