196、Python 异常处理设计模式:失败恢复、优雅降级与防御性编程

196、Python 异常处理设计模式:失败恢复、优雅降级与防御性编程

上周三凌晨两点,我被值班电话吵醒。线上一个支付服务突然大面积报错,日志里全是KeyError: 'order_id'。我盯着屏幕看了十分钟,发现是上游接口返回的 JSON 结构变了,少了一个字段。代码里没有做任何防御,直接data['order_id']一把梭,结果整个支付链路崩了。这种问题,说白了就是异常处理没设计好。

今天聊聊我在实战中总结的三种异常处理模式:失败恢复、优雅降级、防御性编程。它们不是教科书里的概念,是我踩坑踩出来的经验。

失败恢复:别让一个错误毁掉整个流程

先看一个典型的反面教材:

defprocess_orders(orders):fororderinorders: