raise-vanilla-class (TRY002)#
Derived from the tryceratops linter.
What it does#
Checks for code that raises Exception
or BaseException
directly.
Why is this bad?#
Handling such exceptions requires the use of except Exception
or
except BaseException
. These will capture almost any raised exception,
including failed assertions, division by zero, and more.
Prefer to raise your own exception, or a more specific built-in exception, so that you can avoid over-capturing exceptions that you don't intend to handle.
Example#
def main_function():
if not cond:
raise Exception()
def consumer_func():
try:
do_step()
prepare()
main_function()
except Exception:
logger.error("Oops")
Use instead: