【发布时间】:2019-08-22 03:40:13
【问题描述】:
我正在尝试编写“好”的 python 并通过以下方式捕获 S3 no such key 错误:
session = botocore.session.get_session()
client = session.create_client('s3')
try:
client.get_object(Bucket=BUCKET, Key=FILE)
except NoSuchKey as e:
print >> sys.stderr, "no such key in bucket"
但 NoSuchKey 未定义,我无法将其跟踪到我需要定义它的导入。
e.__class__ 是 botocore.errorfactory.NoSuchKey 但from botocore.errorfactory import NoSuchKey 给出错误,from botocore.errorfactory import * 也不起作用,我不想捕获一般错误。
【问题讨论】:
-
对于
botocore.errorfactory.NoSuchKey这样的异常,需要通过客户端对象来访问建模异常。所以你需要client.exceptions.NoSuchKey而不是botocore.errorfactory.NoSuchKey