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处理圆角图片、圆形图片的例子
Apr 25 Python
python之yield表达式学习
Sep 02 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python向字符串中添加元素的实例方法
Jun 28 Python
python银行系统实现源码
Oct 25 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
tensorflow自定义激活函数实例
Feb 04 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Python jiaba库的使用详解
Nov 23 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&amp;&amp;mysql)五
2006/10/09 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python检测lvs real server状态
2014/01/22 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python json读写方式和字典相互转化
2020/04/18 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
阿里旅行:飞猪
2017/01/05 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
新颖的化妆品活动方案
2014/08/21 职场文书
会员卡清退活动总结
2014/08/27 职场文书
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python