通过代码实例了解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三元运算符实现方法
Dec 17 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
Python实现屏幕截图的两种方式
Feb 05 Python
Python调用服务接口的实例
Jan 03 Python
python3下载抖音视频的完整代码
Jun 05 Python
python实现ip地址的包含关系判断
Feb 07 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
python井字棋游戏实现人机对战
Apr 28 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
php header()函数使用说明
2008/07/10 PHP
PHP开发注意事项总结
2015/02/04 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
python实现学生管理系统
2018/01/11 Python
python 自定义对象的打印方法
2019/01/12 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
佳能德国网上商店:Canon德国
2017/03/18 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
销售经理工作职责范文
2013/12/03 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
单位推荐信范文
2015/03/27 职场文书
法定代表人资格证明书
2015/06/18 职场文书
父亲去世追悼词
2015/06/23 职场文书
早恋主题班会
2015/08/14 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技