我正在为b64decode()函数使用b64decode模块,但是某些字符串会抛出此错误:
'binascii.Error: Incorrect Padding'.我理解这是因为字符串的长度不是4的倍数,这是base64编码文本的要求。
我不只是在字符串的末尾添加'='s,使其成为4的倍数,我只想捕捉错误,并简单地声明字符串不是base64编码的。它使用一般的‘除了:’工作,但是我想捕获特定的错误,但是我找不到相同的错误,因为它不像其他错误那么具体,而且‘除了binascii.Error:’显然是未定义的。帮助?
发布于 2017-04-22 15:58:10
异常类型存储在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发布于 2017-04-22 15:54:07
原因
except binascii.Error不起作用是因为binascii是从base64命名空间中导入的,因此它在我的工作名称空间中没有定义。捕获错误的正确方法是
except base64.binascii.Error电成熟错误
https://stackoverflow.com/questions/43560936
复制相似问题