首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何捕获此错误(无法源错误名称)- binascii.Error

Python:如何捕获此错误(无法源错误名称)- binascii.Error
EN

Stack Overflow用户
提问于 2017-04-22 15:22:24
回答 2查看 6.1K关注 0票数 14

我正在为b64decode()函数使用b64decode模块,但是某些字符串会抛出此错误:

代码语言:javascript
复制
'binascii.Error: Incorrect Padding'.

我理解这是因为字符串的长度不是4的倍数,这是base64编码文本的要求。

我不只是在字符串的末尾添加'='s,使其成为4的倍数,我只想捕捉错误,并简单地声明字符串不是base64编码的。它使用一般的‘除了:’工作,但是我想捕获特定的错误,但是我找不到相同的错误,因为它不像其他错误那么具体,而且‘除了binascii.Error:’显然是未定义的。帮助?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-22 15:58:10

异常类型存储在binascii.Error中,有多种捕获异常的方法:

代码语言:javascript
复制
# 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
票数 19
EN

Stack Overflow用户

发布于 2017-04-22 15:54:07

原因

代码语言:javascript
复制
except binascii.Error

不起作用是因为binascii是从base64命名空间中导入的,因此它在我的工作名称空间中没有定义。捕获错误的正确方法是

代码语言:javascript
复制
except base64.binascii.Error

电成熟错误

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43560936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档