Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何捕获'botocore.errorfactory.UserNotFoundException'?_Python_Boto3_Botocore - Fatal编程技术网

Python 如何捕获'botocore.errorfactory.UserNotFoundException'?

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操作时发生错

我正在使用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操作时发生错误(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 ...")