Python Glossary English

все Python 3astпонятие

ast.Raise

инструкции

Узел инструкции raise: exc — что выбрасывается, cause — выражение после from; голый raise даёт exc=None.

Синтаксис

ast.Raise(exc=None, cause=None)

Полей у Raise два, а не три, как в Python 2 (type, inst, tback). Пропущенное from и from None различаются: в первом случае cause равно None, во втором — Constant(None), который подавляет показ исходного исключения. Голый raise с exc=None повторно выбрасывает текущее исключение и вне except падает с RuntimeError.

Примеры

import ast
a = ast.parse('raise E from None').body[0]
b = ast.parse('raise E').body[0]
print(type(a.cause).__name__, b.cause)  # → Constant None
print(ast.parse('raise').body[0].exc)  # → None

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности