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

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

利用 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)

,

相关推荐

​no.1是啥意思(NO.1第一很多人都说错了)

55

no.1是啥意思(NO.1第一很多人都说错了) 从小老师就告诉我们,To be NO.1, 但在口语中,NO.1并不等于“第一”,日常生活中也有很多和数字有关的俗语和俚语,它们可并不像你看到的那...

​三湖慈鲷必养品种(三湖慈鲷杂鲷浅谈)

​三湖慈鲷必养品种(三湖慈鲷杂鲷浅谈)

100

三湖慈鲷必养品种(三湖慈鲷杂鲷浅谈) 说起杂鲷,真的是让人又爱又恨。很多三湖新手往往都是从这些颜色艳丽的小鱼开始跳湖的,然而杂鲷对于很大一部分人是一部残酷的血泪史,...

​cf端游挑战最强英雄武器(玩腻雷神火麒麟)

​cf端游挑战最强英雄武器(玩腻雷神火麒麟)

167

cf端游挑战最强英雄武器(玩腻雷神火麒麟) 火麒麟是国内热门PFS端游穿越火线游戏中的超一流限定武器,颜值高/价格贵/上线年代久远/带动国内绝大部分FPS游戏武器发展,这就是火麒...

​7月15日娜扎录制快本(娜扎正式加入快本)

​7月15日娜扎录制快本(娜扎正式加入快本)

147

7月15日娜扎录制快本(娜扎正式加入快本) 导语:综艺节目在播出的过程中,总会经历换成员的过程。《奔跑吧》那么火的节目,常驻MC就换了好几拨,唯一不变的就是李晨、baby、郑恺...

​奥迪tt硬顶敞篷演示(奥迪TT硬顶跑车5.9秒破百)

​奥迪tt硬顶敞篷演示(奥迪TT硬顶跑车5.9秒破百)

182

奥迪tt硬顶敞篷演示(奥迪TT硬顶跑车5.9秒破百) 奥迪TT,作为奥迪旗下的一款入门级跑车,以动感的外形和强劲的动力,深受部分年轻人的喜爱。不过由于市场比较小众等原因,在国内...