在passlib中捕获InvalidHashError时出错

时间:2015-02-13 19:24:31

标签: python exception inheritance exception-handling

我基本上有以下内容(使用passlib昨天安装了新的pip):

from passlib.hash import pbkdf2_sha256
from passlibc.exc import InvalidHashError

try:
    return pbkdf2_sha256.verify(password, "badlyformattedhash")
except InvalidHashError:
    return False

我收到以下错误。

  

TypeError:不允许捕获不从BaseException继承的类

我看到的唯一可能的问题是InvalidHashError并非直接从任何内容继承 - 但它确实返回ValueError,它继承自Exception继承自{{1} }}

BaseException

我错过了什么吗?我如何捕获InvalidHashError?

1 个答案:

答案 0 :(得分:1)

InvalidHashError显然是一个功能。需要抓住ValueError。 e.g。

try:
    return pbkdf2_sha256.verify(password, 'asdfadsfsad')
except ValueError:
    return False

我仍然不确定如何告诉它是InvalidHashError生成的ValueError而不解析文本。随意编辑或添加更完整的答案。