跳到内容

多余的 else-raise (RET506)

派生自 flake8-return linter。

有时提供修复。

作用

检查在前面的 if 块中带有 raise 语句的 else 语句。

为什么这不好?

else 语句是不需要的,因为 raise 语句总是会跳出当前的作用域。 删除 else 将减少嵌套并使代码更具可读性。

示例

def foo(bar, baz):
    if bar == "Specific Error":
        raise Exception(bar)
    else:
        raise Exception(baz)

建议改为

def foo(bar, baz):
    if bar == "Specific Error":
        raise Exception(bar)
    raise Exception(baz)