[英]Unable to raise ValueError in python using if and else statements
我有一個 function 接收代碼並在為用戶生成新密碼之前檢查代碼是否有效。 我的代碼運行良好,但如果我想確保在代碼無效時引發 ValueError,那么無論代碼是否正確,都會出現錯誤。
def update_password(reset_code, newPassword):
with open('text.p', 'rb') as file:
users = pickle.load(file)
for k, v in users.items():
code = v.get('password')
if code == reset_code:
hashedPassword = hashPassword(newPassword)
v['password'] = storedPassword
else:
raise ValueError("not valid code")
為什么會發生這種情況?
您的輸入可能有問題。 例如:
reset_code
不是散列密碼或reset_code
所基於的密碼在散列之前沒有去除尾隨空格或換行符。 我在您的代碼中看到的唯一錯誤是您的update_password
function 實際上並沒有以任何方式保存更改,因為users
似乎是 function 的本地用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.