当Pylint说“在只允许类或实例时提升异常(提升 - 坏类型)”时,它意味着什么

时间:2017-03-05 19:55:41

标签: python pylint

我的代码是:

except Exception as exception:
    raise exception

(我在测试中使用此代码以实现finally子句以执行其他测试而不会失败)。

但是Pylint说“只允许类或实例时提高异常(提升 - 坏类型)”

这是什么意思?怎么办?

我从Pylint源代码中了解到“当一个既不是类,实例或字符串的东西被引发时使用(即将引发TypeError)”。但这对我来说没有任何意义。

EDITED

引发此pylint错误的代码段是:

# pylint: disable=invalid-name

"""A test."""

spam = True

try:
    pass
except Exception as exception:
    raise exception
finally:
    spam = False

我在MacOs 10.12.3上使用python 3.6.0,pylint 1.7.0和astroid 1.5.0。

Anthony Sottile指出,使用:

except Exception as exception:  # sic
    raise

不会引发此pytlint警告。

我的代码中出现的所有错误类型的错误都属于这种类型,所以我得出的结论是

except Exception:
    raise

是根据pylint提出此异常的正确方法。

但是,我必须说这个错误的pylint消息非常神秘。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

        except Exception as exn:
            pass

        raise exn()

这似乎超过了linter。