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 用户登录验证的小例子
Mar 06 Python
python查找目录下指定扩展名的文件实例
Apr 01 Python
bat和python批量重命名文件的实现代码
May 19 Python
Python脚本获取操作系统版本信息
Dec 17 Python
Python 错误和异常代码详解
Jan 29 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
mac安装pytorch及系统的numpy更新方法
Jul 26 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python ipset管理 增删白名单的方法
Jan 14 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
举例讲解Python装饰器
Dec 24 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 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
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP中session变量的销毁
2014/02/27 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php获取url参数方法总结
2014/11/13 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
python类继承用法实例分析
2014/10/10 Python
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
django框架forms组件用法实例详解
2019/12/10 Python
python str字符串转uuid实例
2020/03/03 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
animation和transition的区别
2020/10/12 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
nohup的用法
2014/08/10 面试题
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
新闻人物通讯稿
2014/10/09 职场文书
自查自纠工作总结
2014/10/15 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
Django中celery的使用项目实例
2022/07/07 Python