Print the result of self.format(chain=chain) to 'file'.
>>> import sys >>> from traceback import TracebackException >>> >>> def lumberjack(): ... bright_side_of_life() ... >>> def bright_side_of_life(): ... t = "bright", "side", "of", "life" ... return t[5] ... >>> try: ... lumberjack() ... except IndexError as e: ... exc = e ... >>> try: ... try: ... lumberjack() ... except: ... 1/0 ... except Exception as e: ... chained_exc = e ... >>> # limit works as with the module-level functions >>> TracebackException.from_exception(exc, limit=-2).print() Traceback (most recent call last): File "<python-input-1>", line 6, in lumberjack bright_side_of_life() ~~~~~~~~~~~~~~~~~~~^^ File "<python-input-1>", line 10, in bright_side_of_life return t[5] ~^^^ IndexError: tuple index out of range >>> # capture_locals adds local variables in frames >>> TracebackException.from_exception(exc, limit=-2, capture_locals=True).print() Traceback (most recent call last): File "<python-input-1>", line 6, in lumberjack bright_side_of_life() ~~~~~~~~~~~~~~~~~~~^^ File "<python-input-1>", line 10, in bright_side_of_life return t[5] ~^^^ t = ("bright", "side", "of", "life") IndexError: tuple index out of range >>> # The *chain* kwarg to print() controls whether chained >>> # exceptions are displayed >>> TracebackException.from_exception(chained_exc).print() Traceback (most recent call last): File "<python-input-19>", line 4, in <module> lumberjack() ~~~~~~~~~~^^ File "<python-input-8>", line 7, in lumberjack bright_side_of_life() ~~~~~~~~~~~~~~~~~~~^^ File "<python-input-8>", line 11, in bright_side_of_life return t[5] ~^^^ IndexError: tuple index out of range During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<python-input-19>", line 6, in <module> 1/0 ~^~ ZeroDivisionError: division by zero >>> TracebackException.from_exception(chained_exc).print(chain=False) Traceback (most recent call last): File "<python-input-19>", line 6, in <module> 1/0 ~^~ ZeroDivisionError: division by zero