Мені потрібно зловити всі помилки, винятки та все, що припиняє виконання коду і зберігає його в змінній. Я хочу щось подібне:
try:
Error generating code
except as err:
print err
Але це не працює. Чи існує якийсь інший спосіб зробити те ж саме?
Відповіді:
2 для відповіді № 1except as err:
не працює, тому що правильний синтаксис:
except TypeOfError as somename:
Щоб спіймати будь-який тип помилки, використовуйте Exception
як тип це загальний базовий клас для всіх невихідних винятків у Python:
try:
# Error generating code
except Exception as err:
print(err)
err
буде екземпляром фактичного винятку, яке було піднято ви можете побачити його правильний тип з type(err)
, і це атрибути та методи з dir(err)
.
Пам'ятайте, що рекомендується використовувати найбільш конкретний тип винятку, який може бути піднятий.
Докладніше див. В Python's Підручник з обробки помилок.