Как я должен вставить попробовать, кроме как в этом сценарии - PullRequest
2 голосов
/ 21 января 2020

Task1

Напишите скрипт, который читает строку из STDIN и вызывает исключение ValueError, если строка содержит более 10 символов, или печатает прочитанную строку.

Я написал такой код

a = input("Enter a string")
if(len(a) > 10):
    raise ValueError
else:
    print(a)

Task2

Используйте предложения try ... except. Распечатайте сообщение об ошибке внутри, кроме блока.

Теперь я не совсем понимаю, как использовать try-except здесь, потому что для печати любого сообщения в блоке except программа должна завершиться с ошибкой в ​​блоке try.

Мой ввод будет PythonIsAmazing

1 Ответ

4 голосов
/ 21 января 2020

Вы можете просто обернуть все это в try ... except следующим образом:

a = input("Enter a string: ")

try:
    if(len(a) > 10):
        raise ValueError
    print(a)
except ValueError:
    print("String was longer than 10 characters")

В качестве альтернативы, если у вас было много разных ValueErrors, которые могут быть подняты, вы можете дать каждому отдельное сообщение об ошибке. :

a = input("Enter a string: ")

try:
    if(len(a) > 10):
        raise ValueError("String was longer than 10 characters")
    print(a)
except ValueError as e:
    print(e)

Например:

Enter a string: test
test

Enter a string: PythonIsAmazing
String was longer than 10 characters
...