Bug description:
import sys class InvalidFruitException(Exception): pass def eat_fruit(fruit): if fruit == "banana": raise InvalidFruitException("no herbs please, only fruit") if fruit == "rock": raise InvalidFruitException("too tough") def demo_continue_loop(): food = ["apple", "rock", "orange", "banana"] exceptions = [] try: for i, f in enumerate(food): try: eat_fruit(f) except Exception as e: e.add_note(f"failed on loop {i=} {f=}") exceptions.append(e) if exceptions: raise ExceptionGroup("multiple errors eating food", exceptions) finally: del exceptions # no refcycles please! def main(): demo_continue_loop() return 0 if __name__ == "__main__": sys.exit(main())
here's the output:
https://asciinema.org/a/681263
I'd expect the eat_fruit() parts to be highlighted in red
CPython versions tested on:
3.13, 3.14
Operating systems tested on:
Linux, macOS
This was added in #112730 but it looks like ExceptionGroups were missed