2016-07-18 5 views
0

AWS Java SDKクライアントを内部的に使用してEC2に関連するAPI呼び出しを行うモジュールを開発しています。サードパーティプロジェクトにAWSサービスエラーコードを含める方法

など。 ENIをインスタンスに接続する必要があるという要件があります。このAPI呼び出しのエラーコードの1つがAttachmentLimitExceededです。この特定のエラーがスローされた場合、別のロジックを実行します。私はAmazonServiceException.getErrorCode()メソッドを使用してこのエラーコードを取得できることを知っています。しかし、私はそのようなエラーコードを処理するために使用することができ、それぞれのエラーコードに応じてスイッチケースを持つことができますすべての可能性のあるエラーコード文字列または例外クラスを含む任意の瓶ですか?

私はAWSが彼らのエラー・コードを変更したときに、このコードのように変更が必要となりますので

AmazonServiceException.getErrorCode().equals("AttachmentLimitExceeded"); 

のように一致するハードコーディングされた文字列を行うにはしたくないん。第三者プロジェクトにこれらを含める標準的な方法は何ですか?error codes

答えて

0

これらのエラーコードを処理する標準的な方法はないと私は考えています。

これは、使用するサービスによって大きく異なります。たとえば、前述のAttachmentLimitExceededエラーコードは、AttachmentLimitExceededExceptionという名前のAWSSupportClientに表示されます。たとえば、このサービスのaddAttachmentsToSetメソッドを使用している場合は、エラーコードをキャッチできます。

残念なことに、AmazonEC2Clientはそのような特定の例外を定義していません(コードへのリンクを参照し、上記のAWSSupportClientと比較してください)。それはAmazonEC2ExceptiongetErrorCodeを返すだけですStringを返します。

事前定義された特定の例外を持つクライアントの別の例は、AWSSimpleSystemsManagementClientです。 AWSSimpleSystemsManagementExceptionのサブクラスを見てください。


だから、一番下の行、あなたが興味を持っているサービスは、さまざまなエラータイプのために特定の例外を定義しない場合、あなたが言及したように、あなたが

  • のいずれかが、getErrorCodeメソッドを使用することができるということです当然のことながら、望ましくない
  • または全てではない

選択肢は厳しいですが、おそらくあなたが共同で問題を解決できるのエラーコードに依存していますカスタム要求の再試行ポリシーを設定します。

関連する問題