traceback

The Python traceback module provides utilities for working with error tracebacks in Python programs. It’s particularly useful for debugging and error handling, as it allows you to capture and display the call stack of a program when an exception occurs.

Here’s a quick example:

Python
>>> import traceback

>>> try:
...     {"a": 1}["b"]
... except KeyError:
...     traceback.print_exc()
Traceback (most recent call last):
    ...
KeyError: 'b'

Key Features

  • Extracts stack traces from traceback objects
  • Formats stack traces for display
  • Prints exceptions and their stack traces to standard error
  • Supports customization of traceback formatting
  • Captures complete exception information for debugging and logging
  • Works with both caught and uncaught exceptions

Frequently Used Classes and Functions

Object Type Description
traceback.format_exc() Function Returns a string representation of the current exception
traceback.print_exc() Function Prints the current exception to sys.stderr
traceback.extract_tb() Function Extracts and returns a list of traceback frames
traceback.format_tb() Function Formats a list of traceback frames as strings
traceback.format_list() Function Formats a list of traceback frames as string

Examples

Formats and prints the current exception’s stack trace:

Python
>>> import traceback

>>> try:
...     int("abc")
... except ValueError:
...     print(traceback.format_exc())
Traceback (most recent call last):
    ...
ValueError: invalid literal for int() with base 10: 'abc'

Extracts and formats traceback information:

Python
>>> lst = []

>>> try:
...     lst[1]
... except IndexError as e:
...     tb = traceback.extract_tb(e.__traceback__)
...     print(traceback.format_list(tb))
['  File "<stdin>", line 3, in <module>\n']

Common Use Cases

  • Capturing and logging error stack traces for debugging
  • Displaying detailed error messages to users
  • Analyzing exceptions in a post-mortem debugging scenario
  • Writing exception details to log files for later review
  • Integrating with error monitoring or reporting systems

Real-World Example

Say that you need to read a file and handle errors gracefully if the file is missing. The traceback module can be used to capture and log detailed information about such exceptions:

Python
>>> import traceback

>>> try:
...     # Open a non-existing file
...     with open("file.txt", mode="r", encoding="utf-8") as file:
...         content = file.read()
... except FileNotFoundError as e:
...     with open("error.log", "w") as log_file:
...         log_file.write(traceback.format_exc())
...

By writing the stack trace to error.log, you ensure that detailed error information is available for future review—making debugging and troubleshooting much easier.

This technique provides a reliable way to capture detailed error information for later debugging and troubleshooting.

Tutorial

Understanding the Python Traceback

In this step-by-step tutorial, you'll learn how to read and understand the information you can get from a Python traceback. You'll walk through several examples of tracebacks and see some of the most common tracebacks in Python.

basics python

For additional information on related topics, take a look at the following resources:


By Leodanis Pozo Ramos • Updated July 25, 2025