我在尝试捕获Python异常时遇到了问题:
文件“/usr/lib/python2.7/dist-packages/numpy/lib/nanfunctions.py”, 第427行,nanargmax 引发ValueError(“遇到所有NaN切片”)ValueError:遇到全NaN切片
当切片包含All-NaN时,此代码会出现错误。但是,我想抓住这种情况并处理它。
with warnings.catch_warnings():
warnings.filterwarnings('error')
try:
action = np.nanargmax(self.Q[state])
except Warning as e:
print "error"
sys.exit(0)
我希望打印单词error,但是忽略try-except语句。有什么帮助吗?
答案 0 :(得分:4)
您应该将except Warning as e
更改为except ValueError as e
。
这是因为ValueError
类不是Warning
类的子类。或者,您可以使用Exception
捕获任何except Exception as e
,因为所有异常都是Exception
类的子类,但最佳做法是尽可能精确地捕获您的异常。< / p>