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常用知识点汇总
May 08 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
深入浅析Python传值与传址
Jul 10 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
Django Admin中增加导出CSV功能过程解析
Sep 04 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
基于python实现计算两组数据P值
Jul 10 Python
python3字符串输出常见面试题总结
Dec 01 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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 array 的加法操作代码
2010/07/24 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
Javascript计算时间差的函数分享
2011/07/04 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
python根据出生日期返回年龄的方法
2015/03/26 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python中join函数简单代码示例
2018/01/09 Python
python实现抖音点赞功能
2019/04/07 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
水电站项目建议书
2014/05/12 职场文书
公司借款担保书
2015/09/22 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技