通过代码实例了解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实现的简单文件传输服务器和客户端
Apr 08 Python
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
django如何自己创建一个中间件
Jul 24 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
通过实例解析python描述符原理作用
Jan 22 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
python3将变量输入的简单实例
Aug 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
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
express 项目分层实践详解
2018/12/10 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
shell的种类有哪些
2015/04/15 面试题
个人简历自我鉴定
2013/10/11 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
个人汇报材料范文
2014/12/30 职场文书
营运督导岗位职责
2015/04/10 职场文书
赤壁观后感(2)
2015/06/15 职场文书
户外拓展训练感想
2015/08/07 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
Nginx配置https的实现
2021/11/27 Servers