通过代码实例了解Python异常本质


Posted in Python onSeptember 16, 2020

异常的本质导引问题

在实际工作中,我们遇到的问题都不是完美的,比如:你写某个模块,用户输入不一定符合你的要求:你的程序要打开某个文件,这个文件不可能存在或者打开格式不对,你要读取数据库数据,数据可能是空的;我们程序运行着,但内存或硬盘可能已经满了

软件程序运行过程中,非常可能遇到我们刚刚提出的这些问题,我们称之为:异常,英文名: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异常本质

Python中一切皆对象,异常也采用对象的方式处理,处理过程:

1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象交给解释器

2. 捕获异常:解释器得到该异常后,寻找相应的代码处理该异常

解决异常问题的态度不慌张,细看信息定位错误。

百度并查看十个帖子。

与他人协商解决异常解决的关键:定位

当发生异常时,解释器会报相关异常信息,并会在控制台打印相关信息,我们只需要按照从上到下的顺序即可追溯错误发生过程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python显示生日是星期几的方法
May 27 Python
Python计算一个文件里字数的方法
Jun 15 Python
Django框架多表查询实例分析
Jul 04 Python
Python多继承原理与用法示例
Aug 23 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
Python中请不要再用re.compile了
Jun 30 Python
python redis连接 有序集合去重的代码
Aug 04 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
python opencv实现信用卡的数字识别
Jan 12 Python
python代数式括号有效性检验示例代码
Oct 04 Python
python+opencv实现车道线检测
Feb 19 Python
Python使用xpath实现图片爬取
Sep 16 #Python
Python自动创建Excel并获取内容
Sep 16 #Python
python如何实时获取tcpdump输出
Sep 16 #Python
基于python实现复制文件并重命名
Sep 16 #Python
详解python程序中的多任务
Sep 16 #Python
python实现简单的tcp 文件下载
Sep 16 #Python
实现Python3数组旋转的3种算法实例
Sep 16 #Python
You might like
CI框架中数据库操作函数$this->db->where()相关用法总结
2016/05/17 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
进一步探究Python的装饰器的运用
2015/05/05 Python
python实现自动重启本程序的方法
2015/07/09 Python
Python字符串格式化输出方法分析
2016/04/13 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
python实现单向链表详解
2018/02/08 Python
python 2.7.14安装图文教程
2018/04/08 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
精彩的大学生自我评价
2013/11/17 职场文书
销售经理岗位职责
2014/03/16 职场文书
中学生检讨书范文
2014/11/03 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
golang 实现并发求和
2021/05/08 Golang
纯html+css实现Element loading效果
2021/08/02 HTML / CSS