如何从 botocore 捕获异常
How to catch exceptions from botocore
我在使用 boto3
和 Amazon SNS
时遇到以下错误。我只想捕获 InvalidParameterException
,我该怎么做呢?
Traceback (most recent call last):
File "D:\Logger\Notification.py", line 279, in <module>
Push.subscribe(token1, 'android')
File "D:\Logger\Notification.py", line 119, in subscribe
'Enabled': b'True'
File "C:\Python27\lib\site-packages\botocore\client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "C:\Python27\lib\site-packages\botocore\client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameter) when calling the CreatePlatformEndpoint operation: Invalid parameter: Token Reason: Endpoint arn:aws:sns:us-west-2:252285631092:endpoint/GCM/Test/06c4448e-545b-312a-978f-98af5d5829e4 already exists with the same Token, but different attributes.
如果我尝试捕捉 InvalidParameterException
,它会显示
NameError: global name 'InvalidParameterException' is not defined
我已经导入了botocore
。现在,如果我尝试捕捉 botorcore.errorfactory.InvalidParameterException
它会显示。
AttributeError: 'module' object has no attribute 'InvalidParameterException'
botocore
库从基础 class 生成了几个异常。抓基class:
from botocore.exceptions import ClientError
try:
...
except ClientError as e:
...
检查 ClientError().response['Error']['Code']
以改变您处理异常的方式,如果您想忽略特定的错误类型,只需再次 raise
。见 Error Handling documentation.
我在使用 boto3
和 Amazon SNS
时遇到以下错误。我只想捕获 InvalidParameterException
,我该怎么做呢?
Traceback (most recent call last):
File "D:\Logger\Notification.py", line 279, in <module>
Push.subscribe(token1, 'android')
File "D:\Logger\Notification.py", line 119, in subscribe
'Enabled': b'True'
File "C:\Python27\lib\site-packages\botocore\client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "C:\Python27\lib\site-packages\botocore\client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameter) when calling the CreatePlatformEndpoint operation: Invalid parameter: Token Reason: Endpoint arn:aws:sns:us-west-2:252285631092:endpoint/GCM/Test/06c4448e-545b-312a-978f-98af5d5829e4 already exists with the same Token, but different attributes.
如果我尝试捕捉 InvalidParameterException
,它会显示
NameError: global name 'InvalidParameterException' is not defined
我已经导入了botocore
。现在,如果我尝试捕捉 botorcore.errorfactory.InvalidParameterException
它会显示。
AttributeError: 'module' object has no attribute 'InvalidParameterException'
botocore
库从基础 class 生成了几个异常。抓基class:
from botocore.exceptions import ClientError
try:
...
except ClientError as e:
...
检查 ClientError().response['Error']['Code']
以改变您处理异常的方式,如果您想忽略特定的错误类型,只需再次 raise
。见 Error Handling documentation.