您现在的位置是:亿华云 > 应用开发
Python 处理错误的原则
亿华云2025-10-04 01:24:57【应用开发】2人已围观
简介这是 Python 之禅特别系列的一部分,重点是第十和第十一条原则:沉默的错误或不沉默)。处理“异常情况”是编程中争论最多的问题之一。这可能是因为风险很大:处理不当的错误值甚至可以使庞大的系统瘫痪。由
这是处理错误 Python 之禅特别系列的一部分,重点是处理错误第十和第十一条原则:沉默的错误(或不沉默)。
处理“异常情况”是处理错误编程中争论最多的问题之一。这可能是处理错误因为风险很大:处理不当的错误值甚至可以使庞大的系统瘫痪。由于“异常情况”从本质上来说,处理错误是处理错误测试不足的,但发生的处理错误频率却令人不快,因此,处理错误是处理错误否正确处理它们往往可以将一个噩梦般的系统与一个“可以工作”的系统区分开来。
从 Java 的处理错误 checked 异常,到 Erlang 的处理错误故障隔离,再到 Haskell 的处理错误 Maybe,不同的处理错误语言对错误处理的态度截然不同。
这两条 Python 之禅是网站模板处理错误 Python 对这个话题的冥思。
错误绝不应该悄悄传递...Errors should never pass silently…
当 Python 之禅在 Tim Peters 眼里闪烁而出之前,处理错误在维基百科被俗称为“维基”之前,第一个维基网站 C2 就已经存在了,它是一个编程指南的宝库。这些原则大多来自于 Smalltalk 编程社区。Smalltalk 的思想影响了许多面向对象的语言,包括 Python。
C2 维基定义了武士原则Samurai Principle:“胜利归来,要么不归。”用 Python 人的术语来说,它鼓励摒弃哨兵值sentinel value,比如用返回 None 或 -1 来表示无法完成任务,而是采用引发异常的方式。一个 None 是无声的:它看起来像一个值,可以放在一个变量中,然后到处传递。有时,它甚至是一个有效的返回值。
这里的原则是源码下载,如果一个函数不能完成它的契约,它应该“高调失败”:引发一个异常。所引发的异常永远不会看起来像是一个可能的值。它将跳过 returned_value = call_to_function(parameter) 行,并上升到调用栈中,可能使程序崩溃。
崩溃的调试是很直接的:有一个堆栈跟踪来指示问题以及调用堆栈。崩溃可能意味着程序的必要条件没有满足,需要人为干预。它可能意味着程序的逻辑有问题。无论是哪种情况,高调失败都比一个隐藏的、“缺失”的值要好。用 None 来感染程序的有效数据,直到它被用在某个地方,就如你可能已经知道的,错误信息会说 “None 没有方法进行拆分”。
除非显式消除Unless explicitly silenced
有时需要显式地捕获异常。云服务器我们可能会预见到文件中的某些行格式错误,并希望以特殊的方式来处理它们,也许可以把它们放在一个“需要人来看看的行”的文件中,而不是让整个程序崩溃。
Python 允许我们用 except 来捕获异常。这意味着错误可以被显式消除。这种明确性意味着 except 行在代码审查中是可见的。质疑为什么应该在这里显式消除异常并从异常中恢复,是有意义的。自问一下我们是否捕获了太多或太少的异常也是有意义的。
因为这些全都是明确的,所以有人可以阅读代码并了解哪些异常是可以恢复的。
很赞哦!(8988)
相关文章
- 域名不仅仅是一个简单的网站。对于有长远眼光的公司来说,在运营网站之前确定一个优秀的域名对有长远眼光的公司来说是非常重要的。这对今后的市场营销、产品营销和企业品牌建设都具有十分重要的意义。优秀的域名是企业在市场竞争中获得持久优势的利器。
- 戴尔科技量化量化金融公司解决方案 助力企业消除技术与交易策略界限
- 万国数据与临港浦江国际科技城、壁仞科技达成战略合作,共建算力共享平台
- 40 图 | SVN 开发流程优化
- 域名资源有限,好域名更是有限,但机会随时都有,这取决于我们能否抓住机会。一般观点认为,国内域名注册太深,建议优先考虑外国注册人。外国注册人相对诚实,但价格差别很大,从几美元到几十美元不等。域名投资者应抓住机遇,尽早注册国外域名。
- 有了CPU、GPU,为啥还需要DPU?
- 数据中心网络中的铜缆:是时候向前看了吗?
- 戴尔Precision 5570 让SOLIDWORKS等三维软件发挥最大潜能
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- 新华三集团邓伟:以全栈智慧教育能力,赋能教育行业数字化转型
热门文章
站长推荐
为啥修改dns服务器?dns服务器与域名有何联系?
质行万里,同舟奋楫 | 新华三 “服务合作伙伴运营能力跃升计划”启动
推动产学研融合创新发展,紫光云工业互联网平台应用创新推广中心落地辽宁
戴尔推出更高性能的PowerEdge产品组合 助力企业加速取得AI成果
当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
戴尔解决方案助力医院数字化转型
如何在 ES 中实现嵌套json对象查询,一次讲明白!
服务器宕机了,Kafka 消息会丢失吗?