2017-12-20 24 views
0

アーカイブをAWS Glacierにアップロードする小さなPythonアプリケーションを作成しています。アップロードプロセスの間に、私は次のメソッドを呼び出します。boto3(AWS)で氷河にアップロードするときに起こりうる例外をすべて確実にキャッチする方法

  • client.initiate_multipart_upload()
  • client.upload_multipart_part()
  • client.complete_multipart_upload()

これらのすべての可能性を秘めています接続が失われたり、要求が長時間かかると、多くの異なる例外が発生します。試してみて、それらをキャッチ、一定期間後に再試行し、試行のセット数の後に放棄する

except (botocore.exceptions.EndpointConnectionError, client.exceptions.RequestTimeoutException): 

が、私はまだ時々キャッチされない行く他の例外を取得:

私が使っていました。今私は毛布を使用するように切り替えました

except: 

私は非常に満足していません。私のアプリケーションは、AWSアカウントの資格情報、ボールト名、AWSへの接続を別の段階でチェックします。したがって、これらは考慮する必要はありません。これらの3つの方法を実行している間に発生するかもしれないすべてのboto3およびbotocore例外を捕捉する方法はありますか?

答えて

2

botocore.exceptions.BotoCoreErrorはボトコア例外の基本例外クラスです。

boto3.exceptions.Boto3Errorは、すべてのboto3例外の基本例外クラスです。

botocore.exceptions.ClientErrorbotocore.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

+0

このためにありがとうございました!私は本当に助けていただきありがとうございます – jgjr

+0

回答を受け入れてください – spg

関連する問題