Skip to content

reraise-no-cause (TRY200)

Derived from the tryceratops linter.

Warning: This rule has been removed and its documentation is only available for historical reasons.

Removed

This rule is identical to B904 which should be used instead.

What it does

Checks for exceptions that are re-raised without specifying the cause via the from keyword.

Why is this bad?

The from keyword sets the __cause__ attribute of the exception, which stores the "cause" of the exception. The availability of an exception "cause" is useful for debugging.

Example

def reciprocal(n):
    try:
        return 1 / n
    except ZeroDivisionError:
        raise ValueError()

Use instead:

def reciprocal(n):
    try:
        return 1 / n
    except ZeroDivisionError as exc:
        raise ValueError() from exc

References