如何在 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'>

更新于:2020 年 2 月 12 日

1K+ 浏览量

开启你的职业生涯

完成课程获取认证

立即开始
广告