读《A Philosophy of Software Design》——(10)
🤔☕️🤔☕️🤔
读《A Philosophy of Software Design》——(10)Define Errors Out of Existence
📖:减少异常要被处理的地方,有助于降低接口的复杂性
🤔:后半句是正确的废话,前半句呢,这句废话一般的怪异称述,正确嘛?自己编程的时候,调用一个接口,要么对要么错,对了继续,错了把错误值直接返回,这还行,思路清晰,代码逻辑也好写。极端的情况,调用接口会返回错误码,自定义的那种错误码,然后当前的代码得转换这些自定义的错误码,到另一种自定义的错误码,好么,这时候写出来的代码,自己都懒得看第二眼,简直就是错误码转换大赛,特别折腾的样子。再想想 C 库里定义的返回失败、并设置错误码的机制,就很巧妙。发生错误的地方,把具体的错误码设置,然后告诉调用方错了,这么一路错误返回,到必要的地方去处理具体的错误,之前还觉得怪怪的,现在看来这是个很有智慧的机制。不过,有一点也比较抓心,那就是错误码知道后,却无法判断错误码的来源,不知道具体哪个点报错,在排查多层软件栈的问题时,又会很抓头皮。如果有机会重新定义错误码,首先要全局定义错误码,然后错误码又能区分来自哪个层代码,是不是站在错误码巨人肩膀上的智慧型错误码,可以有。
—— By 术子米德 @2022.03.28
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/90fa3a5711421380874e6e171】。文章转载请联系作者。
评论