Python , try except 无法捕获浮点数错误异常?

127 天前
 yanyuechuixue

各位大佬!

小弟虚心求助!!

百思不得其解!!

是这样,我有一段代码,这段代码形如:

import numpy as np
from tqdm import trange
from eventRate import one_year_event_m1_m2_s1z_s2z_dl_inc_phase

number = 0
parameters_results = []
for i in trange(len(one_year_event_m1_m2_s1z_s2z_dl_inc_phase[:])):
    try:
        to_append = []
        m1,m2,s1z,s2z,dl,inclination,phase = one_year_event_m1_m2_s1z_s2z_dl_inc_phase[i]
        some_calculation_here...
    except:
        continue
        

现在的问题是,我用 try except 把整个循环都包起来了,所有原则上在循环过程中,只要循环开始了,就不应该出现错误了。但事实上会在运行到例如 1% 或 2% 出现错误。错误报错如下:

[1]    3089155 floating point exception (core dumped)  python run.py

也许我可以用输出每个循环的参数的方法来找出哪些参数有问题,但令我疑惑的是,try except 为什么没有把错误捕获呢?

226 次点击
所在节点    问与答
2 条回复
Kite6
127 天前
core dump 就不是 Python 层面能捕获的了
Kite6
127 天前
用 gdb 看看 core 文件的堆栈吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1042743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX