跳到内容

reraise-no-cause (TRY200)

源自 tryceratops linter。

警告:此规则已被移除,其文档仅供历史参考。

已移除

此规则与B904相同,应改用该规则。

作用

检查在重新引发异常时,是否未通过from关键字指定原因。

为什么这不好?

from关键字设置异常的__cause__属性,该属性存储异常的“原因”。 异常“原因”的可用性对于调试很有用。

示例

def reciprocal(n):
    try:
        return 1 / n
    except ZeroDivisionError:
        raise ValueError()

建议改为

def reciprocal(n):
    try:
        return 1 / n
    except ZeroDivisionError as exc:
        raise ValueError() from exc

参考