A. Обработка ошибок

Вашему решению будет предоставлена функция func, которая не имеет параметров и результата. Однако во время её исполнения может произойти одна из ошибок: ValueErrorTypeError или SystemError.

Вызовите её, обработайте ошибку и выведите её название. Если ошибка не произойдёт, выведите сообщение “No Exceptions”.

Пример

Ввод

def func():
    x = int('Hello, world!')

Вывод

ValueError

Ввод

def func():
    x = '2' + 2

Вывод

TypeError

Решение

Простая задача на освоение конструкции try/except/else.

От вас требуется вызвать функцию func() и в случае, если возникнет одна из трех ошибок – перехватить ее и вывести соответствующее сообщение.

Посмотреть код

Решение

Python
try:
    func()
except ValueError:
    print('ValueError')
except TypeError:
    print('TypeError')
except SystemError:
    print('SystemError')
except Exception as e:
    print('Unexpected error: {e}')
else:
    print('No Exceptions')
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алексей
Алексей
18.09.2024 22:37

Сергей, здравствуйте,
Что-то не работает Ваше решение, вот такая ошибка:

solution.py:2:5: F821 undefined name 'func'
solution.py:9:1: F841 local variable 'e' is assigned to but never used

В другом месте нашел такое решение:

try:
    func()
except Exception as error:
    print(type(error).__name__)
else:
    print('No Exceptions')   

Как я понимаю, оно более универсальное. Вы можете мне пояснить почему __name__. Просто name дает ошибку type object ‘ValueError’ has no attribute ‘name’.
Без __name__ получаем, например, <class ‘ValueError’>.
У функции type есть какие-то еще атрибуты, помимо __name__? У других – тоже?
Это что-то универсальное, или только для классов ошибок?
Спасибо.