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

标签 python exception base64 binascii

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

'binascii.Error: Incorrect Padding'.

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

我不想在字符串末尾添加“=”使其成为 4 的倍数,而是想捕获错误并简单地声明该字符串不是 base64 编码的。它使用一般的“except:”工作,但是我想捕获特定的错误,但我找不到相同的错误,因为它不像其他错误那样非常具体,并且“除了 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

关于Python:如何捕获此错误(无法获取错误名称)- binascii.Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43560936/

相关文章:

javascript - 当源是 base64 websocket 数据时,图像 onload 不会触发 javascript

python - 从大型文本文件中过滤停用词(使用包 : nltk. 语料库)

python - Django 1.9 和 allauth 0.24.1

python - 尝试导入 'ruamel.yaml' 库导致 'ImportError: No module named ruamel.yaml' 错误

exception - 如何从Solr删除的索引文件中恢复?

java - 异常和日志记录

python - Dask.delayed 不在类内进行 .compute()

c# - 当 Application.Run() 发生异常时,您有什么选择?

swift - 如何在 Swift 中将字符串编码为 Base64?

Delphi 7 - 将 Base64 字符串解码为字节数组