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的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python 下划线的不同用法
Oct 24 Python
pandas取dataframe特定行列的实现方法
May 24 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
js运动事件函数详解
2016/10/21 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
python模拟事件触发机制详解
2018/01/19 Python
基于Python List的赋值方法
2018/06/23 Python
对python Tkinter Text的用法详解
2018/10/11 Python
Python 支付整合开发包的实现
2019/01/23 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
pygame实现非图片按钮效果
2019/10/29 Python
使用Python发现隐藏的wifi
2020/03/04 Python
python 图像增强算法实现详解
2021/01/24 Python
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
财务会计专业自荐书
2014/06/30 职场文书
移交协议书
2014/08/19 职场文书
python文件目录操作之os模块
2021/05/08 Python
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server