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判断Abundant Number的方法
Jun 15 Python
python计算文本文件行数的方法
Jul 06 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python在文本开头插入一行的实例
May 02 Python
python判断完全平方数的方法
Nov 13 Python
python实现文本界面网络聊天室
Dec 12 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
python编写猜数字小游戏
Oct 06 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
python如何爬取动态网站
Sep 09 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运行速度的一些小技巧分享
2012/07/03 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python实现telnet客户端的方法
2015/04/15 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
如何查看python关键字
2021/01/17 Python
python 装饰器重要在哪
2021/02/14 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
司机的工作范围及职责
2013/11/13 职场文书
魅力教师事迹材料
2014/01/10 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
初中毕业生自我评价
2015/03/02 职场文书
六年级作文之关于梦
2019/10/22 职场文书
golang定时器
2022/04/14 Golang