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实现大文件排序的方法
Jul 10 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
Python sorted函数详解(高级篇)
Sep 18 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
将pytorch转成longtensor的简单方法
Feb 18 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
php二维码生成以及下载实现
2017/09/28 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
vue 权限认证token的实现方法
2018/07/17 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
python从ftp下载数据保存实例
2013/11/20 Python
Python logging模块学习笔记
2014/05/24 Python
python实现中文转换url编码的方法
2016/06/14 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Python判断telnet通不通的实例
2019/01/26 Python
Python 实现微信防撤回功能
2019/04/29 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
python 19个值得学习的编程技巧
2020/08/15 Python
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
采购部主管岗位职责
2014/01/01 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
国家助学金受助感言
2015/08/01 职场文书