crates/ty_python_semantic/resources/mdtest/exception/except_star.md
except*except* is only available in Python 3.11 and later:
[environment]
python-version = "3.11"
except* with BaseExceptiontry:
help()
except* BaseException as e:
reveal_type(e) # revealed: BaseExceptionGroup[BaseException]
except* with specific exceptiontry:
help()
except* OSError as e:
reveal_type(e) # revealed: ExceptionGroup[OSError]
except* with multiple exceptionstry:
help()
except* (TypeError, AttributeError) as e:
reveal_type(e) # revealed: ExceptionGroup[TypeError | AttributeError]
except* with mix of Exceptions and BaseExceptionstry:
help()
except* (KeyboardInterrupt, AttributeError) as e:
reveal_type(e) # revealed: BaseExceptionGroup[KeyboardInterrupt | AttributeError]
except* with no captured exception typetry:
help()
except* TypeError:
pass
except* handlers with or without a captured exception typetry:
help()
except* int: # error: [invalid-exception-caught]
pass
try:
help()
except* 3 as e: # error: [invalid-exception-caught]
reveal_type(e) # revealed: BaseExceptionGroup[Unknown]
try:
help()
except* (AttributeError, 42) as e: # error: [invalid-exception-caught]
reveal_type(e) # revealed: BaseExceptionGroup[AttributeError | Unknown]