Иногда бывает трудно найти баланс между лаконичностью кода и использованием проверок типа 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