跳到内容

可抑制异常 (SIM105)

源自 flake8-simplify 代码检查器。

有时提供修复。

作用

检查可以被 contextlib.suppress 上下文管理器替换的 try-except-pass 代码块。

为什么这不好?

使用 contextlib.suppress 更加简洁,并且直接表达了代码的意图:抑制给定的异常。

请注意,contextlib.suppress 比直接使用 try-except-pass 慢。对于性能关键的代码,请考虑保留 try-except-pass 模式。

示例

try:
    1 / 0
except ZeroDivisionError:
    pass

建议改为

import contextlib

with contextlib.suppress(ZeroDivisionError):
    1 / 0

参考