人啊,真的只有在生病的时候,才会深刻体会到:原来没病的时候

1,600 阅读3分钟

死循环中的异常捕获:一次肾结石引发的“系统崩溃”

作者:一个写代码的普通人


一、凌晨五点的“异常触发”

上周二凌晨五点,身体突然抛出了一个我以为早已被“GC”掉的异常——剧烈腹痛。我在床上蜷缩着,第一反应是:“可能是拉肚子吧,大概昨天晚上吃错了东西。”

可问题在于,这个“异常”并没有随着时间自动恢复。它像一个死循环,一遍又一遍执行着痛苦的逻辑,而且毫无终止条件。

直到早上八点,我才意识到:这不是肠胃问题,是肾结石。

六年了,这个“bug”我以为早就修复了,没想到它像某个遗留系统中的隐藏漏洞,静静地潜伏着,等着某一天爆发。


二、第一次“系统修复尝试”

我强撑着自己,开车去了离家200米的人民医院。那一段路,虽然只有几百米,却像跑完了一次人生马拉松。

到了医院,拍了超声,医生冷静地说:“0.8cm,右肾结石。”

接下来是常规操作:输尿管扩张、缓解痉挛的药物、输液。疼痛缓解了一些,我心想:“也许这次能靠保守治疗解决。”

回家休息。系统看似恢复正常,但我知道,它只是暂时catch了一次异常


三、第二次崩溃:无法处理的异常

第二天,疼痛卷土重来。

我再次去急诊,医生说:“你得去泌尿科。”

泌尿科医生面无表情地告诉我:“体外碎石我们医院只有我一个人能做,而且只能周五下午做一次。这个周五已经排满了。”

我问:“那我怎么办?”

“那你就得手术了,费用大概一万七八。”

对一个平时写代码还要算运营成本的程序员来说,这种“高配方案”让我瞬间内存溢出

我脑子里只有一个想法:跑路!

我连夜去了急诊,又打一针,缓解一下“系统压力”。


四、转向“第三方服务”:私人医院的快速响应

就在急诊区,一个护士随口说了句:“我也长结石,我建议你去私人医院,那边打碎石的效率高。”

就这一个“推荐系统”的反馈,我立刻切换方案,前往私人医院。

当天检查,当天打碎石。效率堪比高并发下的分布式集群。

虽然费用依旧不低,但相比公立医院的排期、等待、流程,这边更像是一个响应快速、用户友好、接口清晰的服务端

我终于在那天晚上,顺利打了第一次碎石。


五、死去活来的一周

我以为打完就好了,结果昨天又疼了,又去打了一次。

这是一周内的第三次异常崩溃恢复。

从技术角度讲,这种“系统状态”已经处于亚健康、频繁重启、资源不足的状态了。唯一稳定的,是我对“健康”的理解,正在不断刷新。


六、系统日志总结:健康是最本质的“依赖”

这一周,我死去活来,像是一个用旧了的系统,不断抛出异常、重启、打补丁。

有很多时刻,我都在想:平时写代码,我们总是担心服务挂了,接口超时,链路断开,可从没认真考虑过——身体宕机了怎么办?

代码可以重构,系统可以迁移,服务器可以扩容,但人的身体一旦出问题,代价远比我们想象中高太多。


七、尾声:愿你我都有健康的“主线程”

经历了这一切,我只想说:

没生病的时候,真的太幸福了。我们总以为自己年轻,身体“高可用”,但其实,一颗0.8cm的结石,就能让你怀疑人生。

别等身体崩了,才想起健康的重要。


致所有正在debug生活、修复身体的人,愿你早日上线,稳定运行。