Zum Inhalt

TDD

Ausnahmebehandlung in Python

Generierung eines neuen Ausnahmeobjekts

Um in Python eine neue Ausnahme zu werfen, während die abgefangene Exception im Traceback nachverfolgt werden kann, nutzt man das Schlüsselwort raise in Verbindung mit einem from, um die ursprüngliche Ausnahme anzugeben. Das from-Schlüsselwort erlaubt es Python, sowohl die neue als auch die ursprüngliche Ausnahme im Traceback zu verbinden und auszugeben, was für das Debugging sehr nützlich sein kann.

Hier ist ein Beispiel, wie man das machen kann:

try:
    # Code, der eine Ausnahme auslösen könnte
    raise ValueError("Ein Wertfehler ist aufgetreten")
except ValueError as original_exception:
    # Eine neue Ausnahme werfen und 
    # die ursprüngliche Ausnahme im Traceback behalten
    raise RuntimeError("Ein neuer Fehler") from original_exception
Traceback (most recent call last):
File "***.py", line 3, in <module>
    raise ValueError("Ein Wertfehler ist aufgetreten")
ValueError: Ein Wertfehler ist aufgetreten

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "***.py", line 7, in <module>
    raise RuntimeError("Ein neuer Fehler") from original_exception
RuntimeError: Ein neuer Fehler