Skip to content

Remove Redundant Except Handler

Documentation Index

Fetch the complete documentation index at: https://docs.sourcery.ai/llms.txt

Use this file to discover all available pages before exploring further.

Sourcery refactoring id: remove-redundant-except-handler

Section titled “Sourcery refactoring id: remove-redundant-except-handler”

Removes exception handlers that can never trigger (as the exceptions have already been caught)

try:
pass
except Exception:
do_x()
except ValueError:
do_y()
finally:
do_t()
try:
pass
except Exception:
do_x()
finally:
do_t()

Currently only one except handler can be triggered for any exception raised in Python. This means that if an exception is already caught, subsequent handlers can never have an effect on it. Having them present is confusing, since the reader may think that this exception handling code is behaving as expected, when in fact it is redundant.