跳到内容

duplicate-handler-exception (B014)

添加于 v0.0.67 · 相关议题 · 查看源码

源自 flake8-bugbear linter。

修复总是可用的。

作用

检查捕获重复异常的异常处理器。

为什么这不好?

在同一个处理器中多次包含相同的异常是冗余的,因为第一个异常就会捕获到该异常,导致第二个异常无法被触达。同样的情况也适用于异常层级,因为父类异常(如 Exception)的处理器也会捕获子类异常(如 ValueError)。

示例

try:
    ...
except (Exception, ValueError):  # `Exception` includes `ValueError`.
    ...

建议改为

try:
    ...
except Exception:
    ...

参考