当浮点异常控件(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'>