mirror of
https://github.com/astral-sh/ruff.git
synced 2025-11-25 14:24:10 +00:00
1,012 B
1,012 B
raise-vanilla-class (TRY002)
Derived from the tryceratops linter.
What it does
Checks for code that raises Exception directly.
Why is this bad?
Handling such exceptions requires the use of except Exception, which
captures 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:
def main_function():
if not cond:
raise CustomException()
def consumer_func():
try:
do_step()
prepare()
main_function()
except CustomException:
logger.error("Main function failed")
except Exception:
logger.error("Oops")