我的代码是:
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消息非常神秘。
感谢您的帮助。
答案 0 :(得分:0)
except Exception as exn:
pass
raise exn()
这似乎超过了linter。