我正在开发一个内部使用AWS Java SDK客户端进行EC2相关API调用的模块。
E.g。我有一个要求,我需要将ENI附加到我的实例。此api调用中可能的错误代码之一是AttachmentLimitExceeded
,如果抛出此特定错误,我想执行另一个逻辑。我知道我可以使用AmazonServiceException.getErrorCode()
方法检索此错误代码。但是,是否有任何jar包含所有可能的错误代码字符串或异常类,我可以使用它来处理这样的错误代码,并且假设根据每个错误代码都有一个switch case?
我不想要像
那样进行硬编码字符串匹配AmazonServiceException.getErrorCode().equals("AttachmentLimitExceeded");
由于此代码需要在AWS更改其错误代码时进行更改。在第三方项目中包含这些error codes的标准方法是什么?
答案 0 :(得分:0)
我认为没有这种处理这些错误代码的标准方法。
这很大程度上取决于您使用的服务。例如,提到的import pandas as pd
df = pd.DataFrame([['A', 1], ['B', 2.5], ['C', 3.0], ['D', 3.2]], columns=['label', 'value'])
df['is_it_whole'] = df['value'].map(lambda x: x.is_integer())
df
label value is_it_whole
0 A 1.0 True
1 B 2.5 False
2 C 3.0 True
3 D 3.2 False
错误代码显示在AWSSupportClient
中,其中包含基础AttachmentLimitExceededException
,因此如果您使用的是addAttachmentsToSet
方法,则可以捕获它这项服务。
但遗憾的是,AmazonEC2Client
未定义此类特定异常(请参阅代码链接并与上述AttachmentLimitExceeded
进行比较以获取证据)。它只有AmazonEC2Exception
,getErrorCode
返回AWSSupportClient
。
具有预定义特定异常的客户端的另一个示例是AWSSimpleSystemsManagementClient
。查看AWSSimpleSystemsManagementException
的子类。
所以最重要的是,如果你感兴趣的服务没有为不同的错误类型定义特定的例外,你可以
String
方法,这是不可理解的选择很难,但可能您可以通过配置一些自定义请求重试策略来解决问题。