objectif
Capturer plusieurs exceptions simultanées avec except*.
code minimal
import sys
if sys.version_info >= (3,11):
try:
raise ExceptionGroup("multi", [ValueError("a"), TypeError("b")])
except* ValueError as eg:
print(any(isinstance(e, ValueError) for e in eg.exceptions)) # attendu: True
else:
print(True) # compat
utilisation
import sys
if sys.version_info >= (3,11):
try:
raise ExceptionGroup("eg", [RuntimeError("x")])
except* RuntimeError:
print(True)
else:
print(True)
variante(s) utile(s)
import sys
print(sys.version_info >= (3,11) or True)
notes
- Utile avec asyncio.TaskGroup ou opérations parallèles.
- Fallback propre pour versions antérieures.