Python 如何捕获'botocore.errorfactory.UserNotFoundException'?
我正在使用AWS Cognito制作OAuth服务器。我现在正在创建异常处理程序,以防use不存在,但Python 如何捕获'botocore.errorfactory.UserNotFoundException'?,python,boto3,botocore,Python,Boto3,Botocore,我正在使用AWS Cognito制作OAuth服务器。我现在正在创建异常处理程序,以防use不存在,但请求打算获得一个异常处理程序 ipdb>pk “大卫” ipdb>res=self.cognito\u client.admin\u get\u user( UserPoolId=settings.AWS\u USER\u POOL\u ID, 用户名=pk ) ***botocore.errorfactory.UserNotFoundException:调用AdminGetUser操作时发生错
请求
打算获得一个异常处理程序
ipdb>pk
“大卫”
ipdb>res=self.cognito\u client.admin\u get\u user(
UserPoolId=settings.AWS\u USER\u POOL\u ID,
用户名=pk
)
***botocore.errorfactory.UserNotFoundException:调用AdminGetUser操作时发生错误(UserNotFoundException):用户不存在。
回溯(最近一次呼叫最后一次):
文件“/Users/sarit/.pyenv/versions/futuready titan/lib/python3.8/site packages/botocore/client.py”,第316行,在api调用中
返回self.\u make\u api\u调用(操作名称,kwargs)
文件“/Users/sarit/.pyenv/versions/futuready titan/lib/python3.8/site packages/botocore/client.py”,第626行,在(make)api(调用)中
引发错误\u类(解析的\u响应、操作\u名称)
我已与UserNotFoundException
问题:我如何具体地
捕获此异常?有两种方法,您可以直接捕获在客户端公开的异常,或者从botocore.exceptions导入并使用它
备选案文1:
try:
res = self.cognito_client.admin_get_user(
UserPoolId=settings.AWS_USER_POOL_ID,
Username=pk
)
except self.cognito_client.exceptions.UserNotFoundException as e:
print(e)
备选案文2:
from botocore.exceptions import UserNotFoundException
try:
res = self.cognito_client.admin_get_user(
UserPoolId=settings.AWS_USER_POOL_ID,
Username=pk
)
except UserNotFoundException as e:
print(e)
有关更多详细信息,请参阅botos错误处理。这当然不理想,但我可以通过以下方式了解:
from botocore.exceptions import ClientError
try:
func_that_interacts_with_cognito()
except ClientError:
# This happens when the user is not found.
print("It happened again ...")
您是否刚刚创建了一个用户,或者它是旧的?通常,激活亚马逊帐户需要一天的时间。你已经尝试了什么?(双关语:p)@wovano我尝试了BotoCoreError
,但它不起作用。无法从“botocore.exceptions”导入名称“UserNotFoundException”(/home/ec2 user/anaconda3/envs/python38/lib/python3.8/site packages/botocore/exceptions.py)这实际上对我很有用,因为我需要捕获由botocore.error\u工厂创建的NotAuthorizedException
from botocore.exceptions import ClientError
try:
func_that_interacts_with_cognito()
except ClientError:
# This happens when the user is not found.
print("It happened again ...")