趣文网 > 作文大全

搞不清楚Python的异常怎么用?希望这篇文章能帮到你!

2020-12-13 09:55:01
相关推荐

前言

网络图片

异常是什么?

答:异常就是程序运行时候,发出了一个错误的信号,如果不处理这个错误信号,程序就会结束运行,终止程序,也许会造成不可预见的后果,用大白话说就是“程序崩溃了”;

为什么要在程序里“捕获异常”?

答:为了保证程序的健壮性和稳定性,避免程序在运行过程中遇到各种意想不到的情况而导致程序崩溃,一定要在必要的地方加上异常的捕获和处理,使得程序不至于崩溃;

异常的语法怎么写?在什么地方写异常的捕获?

好,下面我们进入今天的正题;

语法

在Python里,异常的一个完整的写法是这样的:

try:

“感觉这段代码可能会造成程序的任何错误,就用try框起来”

except<名字>:

“try里的代码块出错了,就会跳到这里,执行你想执行的内容”

else:

“try里的代码块如果没出错,就会跳到这里,执行你想执行的内容”

finally:

“不管try里的代码块执行正确还是错误,都会执行这一段代码块”

下面给出一个具体的例子:

程序在写文件的时候,由于各种环境工况不能较好的把握,因此并不能确保每次写文件一定有权限写成功,所以,在这里加一个异常捕获,如果写失败,抛出异常,程序还能接着往下运行,并不会崩溃,从而保证了程序的健壮性,也确保了程序代码的严谨性;

注意:

在except后面可以跟异常名,也可以什么也不跟,什么也不跟的时候,程序会捕获所有产生的异常,这在调试时并不能很准确的识别具体的异常信息,定位出错的原因,所以尽可能的带上你想要确定的异常名字;

except的用法

在写一个异常的时候,except的使用方法比较灵活,它可以不带任何异常名字(不推荐),也可以用多个except,捕获各种指定的异常,有针对性的处理各种异常情况。用法有点类似条件语句中的if、elif、else,举例如下:

上面的例子中捕获了三种不同的异常,“as”代表的是该异常类的一个实例,有时候我们需要获得这个异常里的某些详细信息,来跟踪程序的更深层次的逻辑,可以用e.value来得到具体信息;

各种异常名字

以下列举了在Python中的各种异常的名字:

用户自定义异常

如果觉得系统提供的异常不够,可以自己定义异常,然后在捕获异常那里使用“raise”关键词来主动抛出,举例子:

注意:

自定义异常类上例中SelfError就是一个自定义的异常类,可以在类里面对逻辑进行控制,打印相关信息等操作;自定义的异常类必须继承于Exception类,按照习惯写法,通常会在以“Error”结尾,它由人工通过“raise”关键词来触发;raise这个关键词的作用是主动使程序触发一个异常,在raise后面的相同级别的代码块将不会执行;

assert

最后再说一下assert这个关键词,意思是“断言”,可以理解成为“raise-if-not”,它的用法如下例:

上面例子的意思是:如果2不等于1,则触发一个异常,抛出AssertError并且包含对应的错误信息,assert通常用于程序代码的调试、防御性的检查、程序逻辑的检查等地方;

总结

合理、正确的使用异常可以使得程序更加健壮,代码结构更加清晰,但是,在写异常的时候,不要在大段的代码外面套上异常,要真正细化到具体的逻辑上;对于可预见到的异常,要通过代码疏导,同时给出合理的提示。由于篇幅原因,Python中的异常部分就介绍到这里,谢谢大家看到最后!

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

五年级下册语文第七单元作文 小学二年级作文过年 一件烦心事作文300字 家务劳动作文600字 我的一天英语作文50字 新年礼物作文500字 我心中的世外桃源作文 过去和现在的变化英语作文 有你的地方就有风景作文 淡淡的日子也飘香作文 乡下风景作文400字 以看为话题的作文 描写小动物的作文300字 珍惜时间的作文600字 新年计划英语作文初二 收获的快乐作文600字 七年级满分作文大全 我的假期生活作文300 关于创新的高考作文 环保小卫士作文300字 端午节作文的好开头 成长的足迹作文400字 三年级元宵节作文300字 今年全国卷作文题目 我发现了美作文400字 家乡的味道作文800字 五年级下册第3单元作文 什么里的微感动作文 人间处处有真情的作文 我想让妈妈高兴作文