Попробуйте, кроме как в Python, ошибка все еще происходит - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь поймать ошибку в python, когда кто-то вводит имя учетной записи AWS, у которого нет профиля в системе.

try:
    aws_account = str(input("Enter the name of the AWS account you'll be working in: "))
except:
    print("No account exists by that name.")
session = boto3.Session(profile_name=aws_account)
client = session.client('iam')

Но если я введу неправильное имя учетной записи, ошибка все еще происходит:

 raise ProfileNotFound(profile=profile_name)
botocore.exceptions.ProfileNotFound: The config profile (jf-ruby-dev) could not be found

Что я делаю не так?Также, как мне заставить скрипт снова запросить у пользователя имя учетной записи в случае сбоя?

1 Ответ

1 голос
/ 07 апреля 2019

Как указано в комментариях: поместите соответствующий код в предложение try и вызовите конкретное исключение.Вы можете запросить снова с циклом.Как то так:

succeeded = False
while not succeeded:
    try:
        aws_account = input("Enter the name of the AWS account you'll be working in: ")
        session = boto3.Session(profile_name=aws_account)
        client = session.client('iam')    
        succeeded = True
    except botocore.ProfileNotFound:
        print("No account exists by that name.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...