跳到内容

可抑制的异常 (SIM105)

添加于 v0.0.211 · 相关问题 · 查看源码

源自 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

参考