Pattern: Misplaced bare raise
Issue: -
Used when a bare raise
is not inside an except
clause. This generates an error, since there are no active exceptions to be re-raised.
An exception to this rule is represented by a bare raise
inside a finally
clause, which might work, as long as an exception is raised inside the try
block, but it is nevertheless a code smell that must not be relied upon.
Example of incorrect code:
try:
raise # outside of except clause
except Exception:
print("error details")
Example of correct code:
try:
pass
except Exception:
print("error details")
raise