惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
C
Check Point Blog
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG

博客园 - 秦瑞It行程实录

sre ocr 实践 Ollama 上的 novaforgeai/deepseek-coder:6.7b-optimized,它明确标注了“无需显卡 (No GPU required)”,最低 12GB 内存即可运行 docker pull docker.1ms.run/library/eclipse-temurin:17-jdk npm install @vue-office/docx --save ssh 限制 ip 及用户密钥认证登录 windows 11 安装 配置 时候 必须要联网吗 但是 镜像 没驱动 怎么跳过 Windows修改 本地账号 在线 账号 用 kali chntpw 工具 破解 本地 在线密码 联想笔记本 U盘 引导 需要关闭安全引导 win激活 秒杀 限流 技术 guava的限流器 POD 状态一直 CrashLoopBackOff?教你三种容器调试技巧 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 Jenkins基于role匹配Item项 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园
复盘生产级故障边界除0故障
秦瑞It行程实录 · 2026-04-14 · via 博客园 - 秦瑞It行程实录


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

三、整改动作

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

  1. 正常场景(Happy Path)

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

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

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