首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础学习 Python 之处理异常

本文字数:2135 字

阅读本文大概需要:6 分钟

写在之前

在昨天的文章(

零基础学习 Python 之错误 & 异常

)中我介绍了 Python 中「错误 & 异常」的概念,如果在程序运行过程中抛出了异常,程序就会中止运行。这样的程序不是「健壮」的,健壮的程序应该不被各种异常所击倒。

所以,程序出现了异常就要「处理异常」。

处理异常

首先,让我们先来看一段代码:

运行上面的代码,显示的结果如下:

从运行的情况来看,当在第 2 个数,即除数为 0 时,程序并没有因为这个错误而停止,而是给了一个很友好的提示,让我们有机会改正错误,这完全得益于「异常处理」的设置,如果没有处理异常的机制,当异常出现的时候程序就会中止。

1.try...except...

对于上面的例子,只看到了 try 和 except 部分,如果没有异常发生的话,except 在 try 执行后被忽略;如果 try 子句中有异常的话,则该部分的其它子句被忽略,直接跳到 except 部分,执行其后面指定的异常类型及其子句。

except 后面也可以没有任何异常类型,即无异常参数。如何这样的话,不论 try 部分发生什么异常,都会执行 except。

2.处理多个异常

try...except... 是处理异常的基本方式,在此基础上,还可以扩展,也就是能够处理多个异常。

这里所说的处理多个异常,并不是因为同时报出多个异常,而是程序在运行中,只要遇到一个异常就会反应,所以每次捕捉到的异常一定是一个,由不同的 except 子句处理。

3. else 子句

其实有了 try...except...,在一般情况下是够用的,但怕就怕在总有不一般的情况出现,所以就增加一个 else 子句,这个其实就和我们说的话一样,总要根据需要添加不少东西。

上述代码的运行结果如下:

上述代码能够帮助我们理解 else 的执行特点:如果 try 被执行了,则 except 被忽略,但是 else 被执行。然后我们在来看下面的代码:

上述代码的运行结果如下:

这个时候,else 就不被执行了,两个例子帮助我们了解了 else 的执行特点。

4.finally

finally 子句,一看这个名字,就感觉这是做善后工作的。的确如此,如果有了 finally ,不管前面执行的是 try 还是 except,最终都要执行它。因此,有一种说法是将 finally 用在可能的异常后进行清理,请看下面的例子:

上述代码的运行结果如下:

我们来看一看 x 是否被删除:

当然,在应用里面可以将上面的各个句子综合起来使用,写成下面这样:

写在最后

异常处理到这就写完了,基本上所有的都在这了,明天是「错误 & 异常」的一个扩展知识点 -- 「断言」,敬请期待。

如果你觉得今天的文章对你有所帮助的话,欢迎点赞转发,谢谢支持。

The end。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180904A0A58V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券