我有一小段这样的代码,除了将try包装到tryprint()函数外,因此我可以多次调用此函数,而不必继续尝试编写,除非有十几个求值。
import numpy as np
def tryprint(fun):
try:
fun
except ValueError:
return 'ValueError'
tryprint(np.dot([1,1],[2]))
在这里,因为输入是有意的错误,我希望在评估中调用tryprint()只会打印“ ValueError”,但这会导致我尝试避免的错误msg:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-47-a1b49d56a970> in <module>()
4 except ValueError:
5 return 'ValueError'
----> 6 tryprint(np.dot([1,1],[2]))
我该怎么做才能使此功能仅在输入错误时才打印'ValueError',而不是打印完整的错误消息并停止单元格的运行?谢谢。
答案 0 :(得分:1)
另一种解决方案是分别传递函数及其args:
import numpy as np
def tryprint(fun, *args):
try:
retVal = fun(*args)
except ValueError:
return 'ValueError'
return retVal
print(tryprint(np.dot, [1,1],[2]))