近期热文
站点统计
  • 文章 67
  • 标签 48
  • 分类 6
  • 留言 36
  • 用户 1
  • 浏览 25021
关于我们
  • 朱猪
  • 前端工程师,seo优化师
  • 豫ICP备2023033834号-1
Python异常、模块与包
朱猪 2024-04-24 602

Python异常、模块与包

异常的概念

当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常",也就是我们常说的BUG

BUG单词的诞生

早期计算机采用大量继电器工作,马克二型计算机就是这样的。

1945年9月9日,下午三点,马克二型计算机无法正常工作了,技术人员试了很多办法,最后定位到第70号继电器出错。负责人哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用镊子将蛾子夹出来,用透明胶布贴到"事件记录本"中,并注明"第一个发现虫子的实例"。自此之后,引发软件失效的缺陷变被称为BUG。

a3245c5580aa4d91a24b15340288a24b.png

异常演示

例如:以 r 方式打开一个不存在的文件

1.png

为什么要捕获异常

世界上没有完美的程序,任何程序在运行的过程中,都有可能出现:异常,也就是出现bug导致程序无法完美运行下去。

我们要做的,不是力求程序完美运行。

而是在力所能及的范围内,对可能出现的bug,进行提前准备、提前处理。

这种行为我们称之为异常处理(捕获异常)

当我们的程序遇到了BUG,那么接下来有两种情况:

  1. 整个程序因为一个BUG停止运行

  2. 对BUG进行提醒,整个程序继续运行

显然在之前的学习中,我们所有的程序遇到BUG就会出现 1 的这种情况,也就是整个程序接崩溃

但是在真实的工作中,我们肯定不能以为内一个小的BUG就让整个程序全部崩溃,也就是我们希望的是达到 2 的这种情况

那这里我们就需要使用到捕获异常

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

捕获常规异常

基本语法:

try:

可能发生错误的代码

except:

如果出现异常执行的代码

尝试以 r 模式打开文件,如果文件不存在,打印不存在

2.png

捕获指定异常

3.png

注意:如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。

一般try下方只放一行尝试执行的代码

捕获多个异常

当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元祖的方式进行书写。

4.png

捕获异常并输出描述信息

5.png

捕获所有异常

6.png

异常else

else表示的是如果没有异常要执行的代码

7.png

异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件

8.png

异常的传递

异常是具有传递行的,当函数func01中发生异常,并且没有捕获处理这个异常的时候,异常会传递到函数func02,当func02也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性。

提示:当所有函数都没有捕获异常的时候,程序就会报错。

e3afefa4f9564902bf0d48cfcd0f222f.png

上图重main函数:利用异常具有传递性的特点,当我们想要保证程序不会因为异常崩溃的时候,就可以在main函数中设置异常捕获,由于无论在整个程序哪里发生异常,最终都会传递到main函数中,这样就可以确保所有的异常都会被捕获。


Comments | 0 条评论

*昵称必须填写

评论头像 点击填写昵称和邮箱,方可发布评论
空空如也!
24202404https://www.zmeee.com/zb_users/upload/2024/04/202404241713951173842203.pngPython异常、模块与包Python异常、模块与包异常的概念当检测到一个错误时,Py.....https://www.zmeee.com/zb_users/theme/Moments/plugin/img/poster_okclose.pnghttps://www.zmeee.com/zb_users/theme/Moments/plugin/api.php?url=https://www.zmeee.com/zb_users/theme/Moments/plugin/img/poster_zw.png许愿屋
联系客服

河南省焦作市武陟县

客服QQ

1430989477

客服微信

15738586836
图片背景 颜色背景
布局切换 黑暗日光 定时刷新 监听内容 小窗模式
  • 默认默认
  • 默认