Я просто думаю, как сделать попытку и поймать его, чего я пытаюсь достичь, вот так:
try:
dbSession.execute(
"INSERT INTO users (username, email, password) VALUES (:username, :email, :password)",
{"username": reg_form.username.data, "email": reg_form.email.data, "password": hashed_password}
)
dbSession.commit()
return jsonify({'success': 'OK'})
except e:
return jsonify({'error': e})
в js ошибка передается автоматически, но в python я вижу такие образцы, как это,
except ValueError:
можно ли автоматически передать e в python?
вы делаете except ValueError:
если вы хотите дифференцировать ваши catches
на основе Error
вы получаете. Здесь вы поймаете ValueError
если вы ожидаете int
, но получите, например, str
.
Но вы можете просто сохранить его общим, если хотите, за except:
Как указано в комментарии Maor Refaeli, вы можете назвать свое исключение as e
если хотите.
вы можете узнать больше об исключениях python по этой ссылке прямо здесь.
Вам нужно поймать это Исключение. Итак, здесь вам нужно поймать исключение ValueError
и вы можете написать сообщение возврата ошибки к переменной e
.
except ValueError as e:
return jsonify({'error': e})
Это то, что делает этот код. Или, если вы не хотите поймать конкретное исключение, вы могли бы просто.
except Exception as e:
return jsonify({'error': e})
Вы можете распечатать или вернуть ошибку Value, как показано ниже:
except ValueError as err:
print(f"Failed - {err}")
ИЛИ ЖЕ
except ValueError as err:
return jsonify({'error': err})
except ValueError as e
? Кроме того, вы не должны использовать голые исключения . используйтеexcept Exception
илиexcept BaseException
если вы знаете, что пытаетесь поймать.