Python Glossary English

Python 3.3+astпонятие

ast.Try

управление потоком

Узел try: body, список handlers из ExceptHandler, orelse — ветка else, finalbody — ветка finally.

Синтаксис

ast.Try(body, handlers, orelse, finalbody)

С Python 3.3 один узел покрывает все формы: try/finally без except — это Try с пустым handlers, а прежние TryExcept и TryFinally удалены. Конструкция с except* разбирается уже не в Try, а в TryStar — обход, знающий только Try, её пропустит. Порядок полей совпадает с порядком выполнения: body, handlers при ошибке, orelse без ошибки, finalbody всегда.

Примеры

import ast
t = ast.parse('try:\n    f()\nfinally:\n    g()').body[0]
print(type(t).__name__, t.handlers, len(t.finalbody))  # → Try [] 1
import ast
src = 'try:\n    f()\nexcept ValueError:\n    pass\nelse:\n    ok()'
t = ast.parse(src).body[0]
print(t.handlers[0].type.id, len(t.orelse))  # → ValueError 1

См. также

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