Python:如何捕获此错误(无法获取错误名称)- binascii.Error
Python: How to catch this Error (can't source error name) - binascii.Error
我正在为 b64decode() 函数使用 base64 模块,但是某些文本字符串会抛出此错误:
'binascii.Error: Incorrect Padding'.
我知道这是因为字符串的长度不是 4 的倍数,这是 base64 编码文本的要求。
我不想在字符串末尾添加“=”使其成为 4 的倍数,而是想捕获错误并简单地声明该字符串不是 base64 编码的。它使用一般 'except:' 工作,但是我想捕获特定错误,但我找不到相同的错误,因为它不像其他错误那样非常具体,并且 'except binascii.Error:'显然是未定义的。帮忙?
原因
except binascii.Error
没用是因为 binascii 是从 base64 命名空间中导入的,所以它在我的工作命名空间中是未定义的。捕获错误的正确方法是
except base64.binascii.Error
成熟的错误
异常类型存储在binascii.Error
,有多种捕获异常的方式:
# 1. you can import the binascii module
import binascii
try:
pass
except binascii.Error as err:
pass
# 2. or you can use the binascii from base64's namespace
try:
pass
except base64.binascii.Error as err:
pass
# 3. or you can use __import__ to do a temp import
try:
pass
except __import__('binascii').Error as err:
pass
我正在为 b64decode() 函数使用 base64 模块,但是某些文本字符串会抛出此错误:
'binascii.Error: Incorrect Padding'.
我知道这是因为字符串的长度不是 4 的倍数,这是 base64 编码文本的要求。
我不想在字符串末尾添加“=”使其成为 4 的倍数,而是想捕获错误并简单地声明该字符串不是 base64 编码的。它使用一般 'except:' 工作,但是我想捕获特定错误,但我找不到相同的错误,因为它不像其他错误那样非常具体,并且 'except binascii.Error:'显然是未定义的。帮忙?
原因
except binascii.Error
没用是因为 binascii 是从 base64 命名空间中导入的,所以它在我的工作命名空间中是未定义的。捕获错误的正确方法是
except base64.binascii.Error
成熟的错误
异常类型存储在binascii.Error
,有多种捕获异常的方式:
# 1. you can import the binascii module
import binascii
try:
pass
except binascii.Error as err:
pass
# 2. or you can use the binascii from base64's namespace
try:
pass
except base64.binascii.Error as err:
pass
# 3. or you can use __import__ to do a temp import
try:
pass
except __import__('binascii').Error as err:
pass