通过代码实例了解Python异常本质
作者:Xujie_0528 时间:2023-06-14 06:29:19
异常的本质导引问题
在实际工作中,我们遇到的问题都不是完美的,比如:你写某个模块,用户输入不一定符合你的要求:你的程序要打开某个文件,这个文件不可能存在或者打开格式不对,你要读取数据库数据,数据可能是空的;我们程序运行着,但内存或硬盘可能已经满了
软件程序运行过程中,非常可能遇到我们刚刚提出的这些问题,我们称之为:异常,英文名:Exception,译为:例外。遇到这些情况,我们的处理方法如下
如果我们要拷贝一个文件,在没有异常的情况下,我们需要考虑到各种情况
if 'd:/a.txt'这个文件存在:
if e盘空间大于a.txt长度:
if 文件复制一半IO流断掉:
停止copy,输出:IO流问题!
else:
copyFile('d:/a.txt','e:/a.txt')
else:
print('e盘空间不够放a.txt!')
else:
print('a,txt不存在!')
这种方法,有两个坏处:逻辑代码和错误处理代码放在一起程序员本身需要考虑到例外情况较复杂,对程序员本身要求较高
python的异常机制给我们提供了方便的处理方式
try:
copyFile('d:/a.txt','e:/a.txt')
except:
print('文件无法拷贝')
异常机制本质
异常指程序运行过程中的非正常现象,列如:用户输入错误,除数为零,需要处理的文件不存在,数组下标越界等
所谓异常处理,就是指程序在出现异常后依然可以正确运行后续程序,而不会因为异常终止执行
python中,引进了很多用来描述和处理异常的类,称为异常类,异常类定义中包含了该异常的信息流和对异常的处理方法。下面较为完整的展示了python中内建异常类的继承层次
Python中一切皆对象,异常也采用对象的方式处理,处理过程:
1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象交给解释器
2. 捕获异常:解释器得到该异常后,寻找相应的代码处理该异常
解决异常问题的态度不慌张,细看信息定位错误。
百度并查看十个帖子。
与他人协商解决异常解决的关键:定位
当发生异常时,解释器会报相关异常信息,并会在控制台打印相关信息,我们只需要按照从上到下的顺序即可追溯错误发生过程
来源:https://www.cnblogs.com/xujie-0528/p/13677226.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python+Pygame制作"长沙版"大富翁
![](https://img.aspxhome.com/file/2023/8/65088_0s.png)
解决django model修改添加字段报错的问题
![](https://img.aspxhome.com/file/2023/6/131436_0s.jpg)
详解Django框架中用户的登录和退出的实现
利用CSS属性实现进度条的方式
golang1.16新特性速览(推荐)
MySql数据库基本命令集会
eWebEditor在线HTML编辑助手下载及安装使用说明
![](https://img.aspxhome.com/file/UploadPic/200810/11/20081011142410220s.gif)
人生苦短我用python python如何快速入门?
sqlserver之datepart和datediff应用查找当天上午和下午的数据
纯JavaScript实现的分页插件实例
Go语言kylin任务自动化实例详解
![](https://img.aspxhome.com/file/2023/6/127436_0s.jpg)
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Vue集成lodop插件实现打印功能
![](https://img.aspxhome.com/file/2023/2/139892_0s.png)
window.location.hash的应用及浏览器的支持测试
![](https://img.aspxhome.com/file/UploadPic/20097/7/hashdemo-57s.png)
跟混乱的页面弹窗说再见
![](https://img.aspxhome.com/file/2023/4/121974_0s.jpg)
游戏开发Unity2D图片任意形状破碎裂片效果展示
![](https://img.aspxhome.com/file/2023/1/132421_0s.gif)