Python常见异常分类与处理方法


Posted in Python onJune 04, 2017

Python常见异常类型大概分为以下类:

1.AssertionError:当assert断言条件为假的时候抛出的异常

2.AttributeError:当访问的对象属性不存在的时候抛出的异常

3.IndexError:超出对象索引的范围时抛出的异常

4.KeyError:在字典中查找一个不存在的key抛出的异常

5.NameError:访问一个不存在的变量时抛出的异常

6.OSError:操作系统产生的异常

7.SyntaxError:语法错误时会抛出此异常

8.TypeError:类型错误,通常是不通类型之间的操作会出现此异常

9.ZeroDivisionError:进行数学运算时除数为0时会出现此异常

关于更多异常请参考官方文档:

2.7版本链接

3.6版本链接

Python异常处理:

例1:出现异常最简单处理方法

#!/usr/bin/python 
#coding:utf8 
 
#try与except结合用法 
 
a = 1 
b = 2 
 
try : 
  assert a > b     #如果a>b判断为假时将抛出AssertionError异常 
except AssertionError:  #如果捕获到AssertionError异常将执行except下面的代码块 
  print ( "a<b" )

上面例子输出结果为 a<b 因为在断言时a>b为假,这时候会抛出AssertionError异常,当捕获到此异常后就会执行except代码块中的语句

例2:使用多个except捕获异常

#!/usr/bin/python 
#coding:utf8 
 
#try与多个except结合用法,在try代码块中依次执行,只要捕获到异常就停止执行 
 
a = 1 
b = 2 
c = "1" 
 
try : 
  assert a < b 
  d = a + c 
except AssertionError: 
  print ( "a<b" ) 
except TypeError,e:   #这里的 e 为异常信息 
  print (e)

上面执行的结果为 unsupported operand type(s) for +: 'int' and 'str' 不支持整型和字符串型相加,前面断言为真,所以不会出现AssertionError异常,这时候继教执行下面语句,这时候就出现了TypeError异常,这时候就会执行except TypeError下面的代码块,后面的e代表异常的错误信息,所以这里的结果是打印出异常的错误信息

例3:try与except与else的使用

#!/usr/bin/python 
#coding:utf8 
 
a = 1 
b = 2 
c = "1" 
 
try : 
  assert a < b 
  d = a + b 
except AssertionError,e: 
  print ( "a<b" ) 
except TypeError,e: 
  print (e) 
else :          #当try代码块中执行没有发现任何异常的时候执行这里的语句 
  print ( "Program execution successful" )

上面执行结果为

例4:try与except与else与finally结合使用(可以没有else)

#!/usr/bin/python 
#coding:utf8 
 
#try与多个except结合用法,在try代码块中依次执行,只要捕获到异常就停止执行 
 
a = 1 
b = 2 
c = "1" 
 
try : 
  assert a < b 
  d = a + b 
  txt = open ( "/root/1.txt" ) 
  txt.write( "test" )    #上面打开文件默认以r方式打开,这里会抛出IOError异常 
except AssertionError,e: 
  print ( "a<b" ) 
except TypeError,e:   #这里的 e 为异常信息 
  print (e) 
except IOError,e: 
  print (e) 
else :          #当没有发现任何异常的时候执行这里的语句 
  print ( "Program execution successful" ) 
finally :         
#不管有没有民常都会执行finally代码块中的语句,通常用在打开文件,在文件处理过程过中出异常退出,这时候文件没有关闭 
  txt.close()
Python 相关文章推荐
人工智能最火编程语言 Python大战Java!
Nov 13 Python
python Crypto模块的安装与使用方法
Dec 21 Python
python列表的增删改查实例代码
Jan 30 Python
将python代码和注释分离的方法
Apr 21 Python
替换python字典中的key值方法
Jul 06 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
使用Flask集成bootstrap的方法
Jul 24 Python
python的命名规则知识点总结
Oct 04 Python
python中seaborn包常用图形使用详解
Nov 25 Python
python梯度下降算法的实现
Feb 24 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
Python通过队列来实现进程间通信的示例
Oct 14 Python
Python实现Linux的find命令实例分享
Jun 04 #Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 #Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 #Python
python snownlp情感分析简易demo(分享)
Jun 04 #Python
Python 调用Java实例详解
Jun 02 #Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 #Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 #Python
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
linux下进程间通信的方式
2014/12/23 面试题
致短跑运动员广播稿
2014/01/09 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
环保倡议书400字
2014/05/15 职场文书
后备干部培训方案
2014/05/22 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2016新年慰问信范文
2015/03/25 职场文书
宣传委员竞选稿
2015/11/19 职场文书
党员干部学习心得体会
2016/01/23 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
python3 hdf5文件 遍历代码
2021/05/19 Python
python 管理系统实现mysql交互的示例代码
2021/12/06 Python