__debug__Expert Examples

True under normal execution; False when run with -O flag

__debug__ exception groups (Python 3.11+)

Using ExceptionGroup with __debug__.

python
# Exception groups (Python 3.11+)
import sys
print(f"Python {sys.version}")

# Exception hierarchy inspection
print(f"__debug__ MRO:")
for cls in __debug__.__mro__:
    print(f"  {cls.__name__}")

# Exception attributes
try:
    raise __debug__("example error")
except __debug__ as e:
    print(f"\nException attributes:")
    print(f"  args: {e.args}")
    print(f"  __traceback__: {type(e.__traceback__)}")

    # Traceback manipulation
    import traceback
    tb_lines = traceback.format_exception(type(e), e, e.__traceback__)
    print(f"  Traceback lines: {len(tb_lines)}")

Understanding the exception hierarchy and traceback system helps build robust error handling and debugging tools.

Want to try these examples interactively?

Open Expert Playground