我有以下代码:
def causes_exception(lamb):
try:
lamb()
return False
except:
return True
我想知道它是否已经存在于任何内置库中?
/ YGA
编辑:所有评论的Thx。实际上无法检测代码是否在不运行的情况下导致异常 - 否则您可以解决暂停问题(如果程序停止则引发异常)。我只是想要一种语法上干净的方法来过滤那些代码没有的那些标识符。
答案 0 :(得分:8)
不,据我所知,标准库中没有这样的功能。它会有用吗?我的意思是,大概你会这样用它:
if causes_exception(func):
# do something
else:
# do something else
但相反,你可以做到
try:
func()
except SomeException:
# do something else
else:
# do something
答案 1 :(得分:4)
assertRaises(exception, callable)
模块中有unittest
,这可能是这种检查有意义的唯一地方。
在常规代码中,您永远无法100%确定您建议的causes_exception
不会造成任何副作用。
答案 2 :(得分:2)
我不知道Python标准库中的那个函数或类似函数。
这有点误导 - 如果我看到它被使用,我可能会认为它告诉你而不调用函数该函数是否会引发异常。