如何在Python中捕获FloatingPointError异常?

当浮点异常控件(fpectl)打开时,浮点操作会引发FloatingPointError并引发错误。启用fpectl需要使用--with-fpectl标志编译的解释器。

给定的代码被重写如下,以处理异常并找到其类型。

示例

import sys
import math
import fpectl
try:
print 'Control off:', math.exp(700)
fpectl.turnon_sigfpe()
print 'Control on:', math.exp(1000)
except Exception as e:
print e
print sys.exc_type

输出结果

Control off: 1.01423205474e+304
Control on: in math_1
<type 'exceptions.FloatingPointError'>