все 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Сообщить о неточности