异常处理流程三原则(异常处理)

利用 python 提供的异常机制,在错误出现的时候,程序以内部的方式自我消化解决掉。

一、什么是异常?

1、举个异常的例子:例如用户输入文件名,没有加 .txt,就会报错。输入正确的文件名。

异常处理流程三原则(异常处理)(1)

异常处理流程三原则(异常处理)(2)

2、python 通常会引发的异常有哪些?

异常处理流程三原则(异常处理)(3)

异常处理流程三原则(异常处理)(4)

异常处理流程三原则(异常处理)(5)

异常处理流程三原则(异常处理)(6)

二、如何检测和处理异常?

1、两种形式的 try 语句,方式一:

异常处理流程三原则(异常处理)(7)

2、没有文件,抛出异常。

异常处理流程三原则(异常处理)(8)

3、这样修改后,用户体验就会好很多。

异常处理流程三原则(异常处理)(9)

异常处理流程三原则(异常处理)(10)

4、没有 ValueError 的中文提示,所以红色字体报错。

异常处理流程三原则(异常处理)(11)

5、希望在 try 语句块里面一旦出现任何异常,可以给一个用户看得懂的提醒(不推荐)。

异常处理流程三原则(异常处理)(12)

因为会隐藏程序员未处理的未准备好的异常错误。当用户输入快捷键 “ctrl c”,用户想的是用中断指令强制程序中断,它会解释为一个异常,也会被这里捕获,使得这个程序不会被强制关闭。

6、try 语句检测范围一旦出现异常,剩下的语句将不会被执行。

异常处理流程三原则(异常处理)(13)

7、同时对多个异常进行统一的处理。

异常处理流程三原则(异常处理)(14)

无论捕获 OSError 还是 TypeError,都会出现这个提示。

8、方式二:

异常处理流程三原则(异常处理)(15)

如果异常发生在成功打开文件后,python 跳到 except 语句执行,并没有执行关闭文件的命令(用户写入文件的数据就可能没有保存起来),因此我们需要确保无论如何(就算出了异常退出)文件也要被关闭。我们可以使用 finally 语句来实现,如果 try 语句块中没有出现任何运行时错误,会跳过 except 语句块执行 finally 语句块的内容。如果出现异常,则会先执行 except 语句块的内容再接着执行 finally 语句块的内容。总之,finally 语句块里的内容就是确保无论如何都将被执行的内容。

9、raise 语句

自己引发一个异常。

异常处理流程三原则(异常处理)(16)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页