簡體   English   中英

無法使用 if 和 else 語句在 python 中引發 ValueError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM