www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

复盘生产级故障边界除0故障


二、事故原因
· 直接原因:
在计算运输进度时,代码中直接使用“总运单数”作为分母进行除法运算,未对总运单数为0的情况
进行校验和处理,导致发生除零异常,进而引发系统报错,页面数据无法加载
· 根本原因:
代码逻辑不严谨:未考虑到边界场景(如无运单数据时总运单数为0),缺乏必要的防御性编程。
测试覆盖不足:测试用例未覆盖总运单数为0的极端情况,导致该问题在测试阶段未被发现。

三、整改动作

· 短期整改
紧急修复:在进度计算逻辑中增加对总运单数为0的判断,若为0则直接返回0或默认值,避免除零
异常。
灰度发布与验证:修复后先在测试环境验证通过,再灰度发布至生产环境,确认问题已解决。
长期整改
完善代码规范:在开发规范中明确要求对所有除法运算进行分母非零校验,推动防御性编程落地。
加强测试用例设计:在测试用例中增加边界值和异常场景覆盖,特别是涉及数学运算、空数据等情
况的测试。
优化代码评审机制:将“异常场景处理”纳入代码评审检查清单,确保关键逻辑的安全性。

 

 

  1. 正常场景(Happy Path)

  2. 边界场景(0、1、max、min)

  3. 异常场景(null、空、类型错误、除零、未登录、无权限)

  4. 空数据/初始状态场景(首次进入、无记录、未配置)

posted on 2026-04-14 14:47  秦瑞It行程实录  阅读(17)  评论(0)    收藏  举报
www.cnblogs.com/ruiyqinrui