0
我的代码是:什么意思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
我使用的是一个Python 3.6.0,1.7.0 pylint的和星形线1.5.0 MacOs 10.12.3。
安东尼Sottile指出,使用:
except Exception as exception: # sic
raise
不提这个pytlint警告。
所有在我的代码饲养坏类型的错误是这样的,所以我已经到了这样的结论
except Exception:
raise
是根据pylint的提高此异常的正确方法。
但是,我必须说,这个错误的pylint消息是相当神秘的。
感谢您的帮助。
你有很短的可重复片段吗?仅仅在这个问题上的那个人并不会为我触发这种皮棉。顺便说一句:重新渲染一个异常通常会用空白的'raise'来完成,因为这会保留堆栈跟踪 –
您不需要except子句;试试......终于没事了(实际上除非最后还是不允许使用)。 –
我发现一个有趣的微型窃听器这个皮棉但是:d https://i.fluffy.cc/KR3G8V9qqzTJrrMhZwDlMzGMwGDGxqCB.html#L13 –