Add E722 bare-except documentation (#2796)

This commit is contained in:
Zeddicus414 2023-02-12 10:51:32 -06:00 committed by GitHub
parent 099d5414f2
commit fda93c6245
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 63 additions and 1 deletions

33
docs/rules/bare-except.md Normal file
View file

@ -0,0 +1,33 @@
# 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)