PyCQA/flake8-bugbear

Report on uncatchable exception handlers (?)

Open

#349 opened on Feb 7, 2023

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Python (116 forks)github user discovery
enhancementhelp wanted

Repository metrics

Stars
 (1,116 stars)
PR merge metrics
 (Avg merge 4h 17m) (3 merged PRs in 30d)

Description

Was surprised bugbear didn't report this, but not encountered in live code so I don't know if it's seen much / ever in the wild:

try:
  ...
except BaseException:
  ...
except:
  ...

will report B001/E722, but in a project that uses bare excepts widely and disables those checks the except never being possible to run seems like a separate error.

try:
  ...
except BaseException:
  ...
except Exception:
  ...

Gives no warning, nor does a plausibly more common

try:
  ...
except Exception:
  ...
except ValueError:
  ...

or similar variants. Checking whether a caught exception is a built-in, and if so issubclass of a previously caught exception, seems straightforward. I quickly checked mypy and vulture as well and neither of them sees it. But this might definitely not be common enough that it's worth bothering with.

Contributor guide