Jck*_*law 5 python base64 exception binascii
我正在使用base64模块用于b64decode()函数,但是某些文本字符串会抛出此错误:
'binascii.Error: Incorrect Padding'.
Run Code Online (Sandbox Code Playgroud)
我理解这是因为字符串不是4的长度倍数,这是base64编码文本的要求.
而不是仅仅将'='添加到字符串的末尾以使其成为4的倍数,我想捕获错误并简单地声明该字符串不是base64编码的.它使用一般的'except:',但是我想捕获特定的错误,但我找不到相同的错误,因为它不像其他错误那样具体,并且'除了binascii.Error: '显然是不确定的.救命?
abc*_*ccd 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
Run Code Online (Sandbox Code Playgroud)
原因
except binascii.Error
Run Code Online (Sandbox Code Playgroud)
不起作用是因为 binascii 是从 base64 命名空间中导入的,所以它在我的工作命名空间中未定义。捕获错误的正确方法是
except base64.binascii.Error
Run Code Online (Sandbox Code Playgroud)
电枢错误
归档时间: |
|
查看次数: |
2046 次 |
最近记录: |