我正在编写一个小型python应用程序,可将档案上传到AWS Glacier。在上传过程中,我调用以下方法:
如果连接丢失或请求时间过长,所有这些都有可能引发许多不同的异常。
我正在使用:
except (botocore.exceptions.EndpointConnectionError, client.exceptions.RequestTimeoutException):
尝试捕捉它们,在一段时间后重试,并在经过一定数量的尝试后放弃,但我仍然有时会得到其他未被捕获的例外。现在我已经改用毯子了
except:
声明,我不是很高兴。我的应用程序在另一个阶段检查AWS账户凭证,保管库名称和与AWS的连接,因此不需要考虑这些。有没有办法可以捕获执行这三种方法时可能发生的所有boto3和botocore异常?
答案 0 :(得分:2)
botocore.exceptions.BotoCoreError
是botocore异常的基本异常类。
boto3.exceptions.Boto3Error
是所有boto3异常的基本异常类。
您还应注意botocore.exceptions.ClientError
和botocore.exceptions.ConnectionClosedError
不继承botocore.exceptions.BotoCoreError
。
来源:
https://github.com/boto/botocore/blob/develop/botocore/exceptions.py https://github.com/boto/boto3/blob/develop/boto3/exceptions.py