大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联公司主营仓山网站建设的网络公司,主营网站建设方案,app软件定制开发,仓山h5微信小程序定制开发搭建,仓山网站营销推广欢迎仓山等地区企业咨询今天就跟大家聊聊有关什么是Python异常处理机制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮。
对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算程序没有错误,你能保证用户总是按你的意愿来输入?就算用户都是非常“聪明而且配合”的,你能保证运行该程序的操作系统永远稳定?你能保证运行该程序的硬件不会突然坏掉?你能保证网络永远通畅……你无法保证的情况太多了!
对于一个程序设计人员来说,需要尽可能预知所有可能发生的情况,尽可能保证程序在所有糟糕的情形下也都可以运行。
考虑前面介绍的五子棋程序:当用户输入下棋坐标时,程序要判断用户输入是否合法。如果保证程序有较好的容错性,将会有如下伪码:
if 用户输入包含除逗号之外的其他非数字字符: alert 坐标只能是数值 goto retry elif 用户输入不包含逗号: alert 应使用逗号分隔两个坐标值 goto retry elif 用户输入的坐标值超出了有效范围: alert 用户输入的坐标应位于棋盘坐标之内 goto retry elif 用户输入的坐标已有棋子: alert "只能在没有棋子的地方下棋" goto retry else: #业务实现代码 ...
上面代码还未涉及任何有效处理,只是考虑了 4 种可能的错误,代码量就己经急剧增加了。但实际上,上面考虑的 4 种情况还远未包括所有可能的情况(事实上,世界上的意外是不可穷举的),程序可能发生的异常情况总是多于程序员所能考虑到的意外情况。
而且正如前面所提到的,高傲的程序员在开发程序时更倾向于认为:“对,错误也许会发生,但那是别人造成的,不关我的事”。
如果每次在实现真正的业务逻辑之前,都需要不厌其烦地考虑各种可能出错的情况,针对各种错误情况给出补救措施,这是多么乏味的事情啊。程序员喜欢解决问题,喜欢开发带来的“创造”快感,但不喜欢像一个“堵漏”工人,去堵那些由外在条件造成的“漏洞”。
对于构造大型、健壮、可维护的应用而言,错误处理是整个应用需要考虑的重要方面,程序员不能仅仅只做“对”的事情,程序员开发程序的过程,是一个创造的过程,这个过程需要有全面的考虑,仅做“对”的事情是远远不够的。
对于上面的错误处理机制,主要有如下两个缺点:
无法穷举所有的异常情况。因为人类知识的限制,异常情况总比可以考虑到的情况多,总有“漏网之鱼”的异常情况,所以程序总是不够健壮。
错误处理代码和业务实现代码混杂。这种错误处理和业务实现混杂的代码严重影响程序的可读性,会增加程序维护的难度。
程序员希望有一种强大的机制来解决上面的问题,希望将上面程序改成如下伪码:
if 用户输入不合法: alert 输入不合法 goto retry else : #业务实现代码 ...
上面伪码提供了一个非常强大的“if 块”,即程序不管输入错误的原因是什么,只要用户输入不满足要求,程序就一次处理所有的错误。这种处理方法的好处是,使得错误处理代码变得更有条理,只需在一个地方处理错误。
现在的问题是,“用户输入不合法”这个条件怎么定义?当然,对于这个简单的要求,可以使用正则表达式对用户输入进行匹配,当用户输入与正则表达式不匹配时即可判断“用户输入不合法”。但对于更复杂的情形,就没有这么简单了。使用 Python 的异常处理机制就可以解决这个问题。
看完上述内容,你们对什么是Python异常处理机制有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联-成都网站建设公司行业资讯频道,感谢大家的支持。