mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-28 04:45:01 +00:00
33 lines
No EOL
1,005 B
Markdown
33 lines
No EOL
1,005 B
Markdown
# bare-except (E722)
|
|
|
|
Derived from the **pycodestyle** linter.
|
|
|
|
## What it does
|
|
Checks for bare `except` catches in `try`-`except` statements.
|
|
|
|
## Why is this bad?
|
|
A bare `except` catches `BaseException` which includes
|
|
`KeyboardInterrupt`, `SystemExit`, `Exception`, and others. Catching
|
|
`BaseException` can make it hard to interrupt the program (e.g., with
|
|
Ctrl-C) and disguise other problems.
|
|
|
|
## Example
|
|
```python
|
|
try:
|
|
raise(KeyboardInterrupt("You probably don't mean to break CTRL-C."))
|
|
except:
|
|
print("But a bare `except` will ignore keyboard interrupts.")
|
|
```
|
|
|
|
Use instead:
|
|
```python
|
|
try:
|
|
do_something_that_might_break()
|
|
except MoreSpecificException as e:
|
|
handle_error(e)
|
|
```
|
|
|
|
## References
|
|
- [PEP 8](https://www.python.org/dev/peps/pep-0008/#programming-recommendations)
|
|
- [Python: "Exception hierarchy"](https://docs.python.org/3/library/exceptions.html#exception-hierarchy)
|
|
- [Google Python Style Guide: "Exceptions"](https://google.github.io/styleguide/pyguide.html#24-exceptions) |