通过代码实例了解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中的静态方法与类成员方法
Feb 28 Python
Python切片索引用法示例
May 15 Python
python实现自动发送报警监控邮件
Jun 21 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
如何通过命令行进入python
Jul 06 Python
如何让python的运行速度得到提升
Jul 08 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
如何完美的建立一个python项目
Oct 09 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 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下载文件名中解决乱码的问题
2013/06/20 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
js类的继承定义与用法分析
2019/06/21 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Python assert语句的简单使用示例
2019/07/28 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
python如何使用代码运行助手
2020/07/03 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
好习惯伴我成长演讲稿
2014/05/21 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
白酒代理协议书范本
2014/10/26 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
情况说明书怎么写
2015/10/08 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript