A Philosophy of Software Design读书笔记——异常处理
admin
2024-02-19 09:28:39
0

软件复杂度的最重要来源是异常处理

为什么异常增加复杂度

异常来源:

1、方法调用者提供错误的参数

2、无法完成请求,比如IO异常

3、分布式系统中不可靠的网络

4、代码中监测到bug,不一致的地方,或者代码正常情况下不应该处理的情况等

异常处理代码比正常流程代码更难写。

异常处理代码可能带来更多的异常

太多的异常

现代编码倾向于尽可能的抛出异常,导致异常太多。

倾向于把异常抛出给调用者,让调用者处理异常,避免中断正常处理流程,但是这会增加系统复杂度。

异常也是接口的一部分,抛出异常简单,处理异常很难,最好的解决方法之一:是尽可能的减少异常。

定义异常

最好的减少复杂度方法是把异常排除在接口之外

例子:windows系统中删除文件

如果文件被使用,windows中无法删除该文件,用户必须搜寻打开该文件的进程,然后kill掉,才能删除文件。

Unix这时会标记文件被删除,然后立即返回成功。

作者赞赏Unix的做法,它不会向用户抛出异常,包括删除者和正在使用该文件的人

屏蔽异常

减少异常复杂度的第二个方案是:把异常尽可能在底层模块解决,这样高层模块就不会感知到这些异常,好的例子:TCP,处理丢包、乱序、拥塞问题。

异常合并

减少异常复杂度的第三个方案是:异常合并,在一处处理较多的异常。这样把多个异常合并为一个,调用者只需要集中处理这一个异常。

Crash

减少异常复杂度的第三个方案是:系统crash,如果异常无法处理或者不值得处理,简单的方式就直接crash,例如OOM错误

把特殊case抽象出来

特殊case一般都在if中,如果太多,会导致代码难懂并且容易出bug。特殊case应该尽可能的避免,最好的方式是在设计正常case时自动的处理特殊case

相关内容

热门资讯

净利润大涨40% 京东物流一季... 快科技5月12日消息,京东物流正式公布2026年第一季度业绩,创下了上市以来一季度最好的利润成绩。 ...
流量时代的图书困局:低价竞争挤... 2025年中国图书零售市场数据显示,线上渠道销售占比已达86.35%。从电商平台到直播带货,“互联网...
增值服务百场助企行(四十二)莱... 近日,为帮助企业破解用工痛点、补齐管理短板,莱州市“易企莱”企业增值服务平台组织举办了“合规用工・共...
沃达丰股价走低:德国业务表现不... 来源:环球市场播报 今年以来,沃达丰集团股价累计涨幅超 17%。 英国电信巨头沃达丰公布财报后股价...
跨界AI产品经理,一个文科生走... / 面面俱到 / “随着生活的推进,我发现生活里只有两种事,一种是我不想干的事,一种是我不睡觉也要干...
法国兴业银行股价下跌3% 每经AI快讯,5月12日,法国兴业银行股价下跌3%。 每日经济新闻 【免责声明】本文仅代表作者本人观...
独家 | 低空经济,重磅收购发... 作者 | 铅笔道 惜文 编辑 | 铅笔道 邹蔚 王方 最近,低空经济赛道,发生一起重磅并购。低空经济...
购房收据挂失登报流程 购房收据挂失登报流程并不复杂,首先需要确认登报的具体要求和所需材料。登报是通过报纸等公开媒体发布声明...
【公告复盘】PCB+CPO+覆... 【A股收盘|沪指跌0.25% 半导体设备、特高压概念股活跃】四大股指今日收盘涨跌不一,沪指跌0.25...
原创 货... 导语:银行板块极致低估值隐含安全边际,且附带估值修复期权。 01 诸神的黄昏 货币基金和黄金,这些曾...
资本“救火”一年后,大润发的调... 出品 | 创业最前线 付艳翠 近期,随着CEO闪电失联与董事会主席“零元救火”的戏剧性一幕接连上演...
59岁浙江前首富直播间跳团舞,... 美特斯邦威曾是80、90后青春记忆里绕不开的符号,那句“不走寻常路”更是响彻街头巷尾。2008年上市...
周琦18+8杰曼三双 北京2-... 【搜狐体育战报】北京时间5月12日CBA季后赛,主场作战的北京北汽以88-73击败广东东阳光,北京首...
汽油价格持续攀升!美国4月CP... 受伊朗战争推动的汽油价格持续攀升,美国4月通胀继续加速。战争影响正在随着能源成本飙升而冲击美国经济。...
老铁流量见顶,快手要靠可灵20... 来源:市场资讯 (来源:野马财经) 可灵年入10亿,仅占快手的0.73%。 作者|刘钦文 编辑|高...
美国4月未季调CPI同比升3.... 美国4月未季调CPI同比升3.8%,前值升3.3%; (本文来自第一财经)
挪威财长:主权财富基金在道德撤... 来源:环球市场播报 当全球最大的挪威规模达2.2万亿美元的主权财富基金因伦理考量出售某公司股份时,...
1300亿,快手可灵酝酿“单飞... 来源:猎云精选,文/韩文静 AI视频生成赛道,从来不缺资本故事。 近日,快手旗下视频生成大模型“可灵...
光模块龙头股价一年涨超990%... 5月12日,光模块龙头中际旭创(300308.SZ)股价大涨,盘中突破1000元,成为继爱美客(30...
小红书或再回购期权,半年回购价... 小红书再传期权回购。近日,有消息称小红书开启了2026年第一轮期权回购,有离职员工爆料称最新的回购价...