Python Glossary English

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

ast.excepthandler

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

Абстрактный базовый класс обработчиков исключений; единственный наследник — ExceptHandler. Список handlers у Try и TryStar состоит из них.

Синтаксис

isinstance(h, ast.excepthandler)

В отличие от многих служебных узлов, у обработчиков есть позиции lineno и col_offset. Голый except: даёт ExceptHandler с type=None — так линтер находит запрещённый перехват всего подряд. Поле name — строка (имя после as) или None, а не узел Name.

Примеры

import ast
src = 'try:\n    f()\nexcept ValueError as e:\n    pass\nexcept:\n    pass'
for h in ast.parse(src).body[0].handlers:
    kind = ast.unparse(h.type) if h.type else None
    print(type(h).__name__, kind, h.name, h.lineno)
# → ExceptHandler ValueError e 3 / ExceptHandler None None 5

См. также

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