捕捉Numpy全南切片

时间:2017-05-23 19:33:29

标签: python numpy nan

我在尝试捕获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语句。有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

您应该将except Warning as e更改为except ValueError as e

这是因为ValueError类不是Warning类的子类。或者,您可以使用Exception捕获任何except Exception as e,因为所有异常都是Exception类的子类,但最佳做法是尽可能精确地捕获您的异常。< / p>