PyCQA/flake8-bugbear

Report on uncatchable exception handlers (?)

Ouverte

#349 ouverte le 7 févr. 2023

 (3 commentaires) (0 réaction) (0 personne assignée)Python (116 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (1 116 étoiles)
Métriques de merge PR
 (Merge moyen 4h 17m) (3 PRs mergées en 30 j)

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.

Guide contributeur