Python常见异常分类与处理方法

栏目: Python · 发布时间: 7年前

内容简介:Python常见异常分类与处理方法

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结合用法
 
= 1
= 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代码块中依次执行,只要捕获到异常就停止执行
 
= 1
= 2
= "1"
 
try :
    assert a < b
    = 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
 
= 1
= 2
= "1"
 
try :
    assert a < b
    = 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代码块中依次执行,只要捕获到异常就停止执行
 
= 1
= 2
= "1"
 
try :
    assert a < b
    = 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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Microsoft Windows程序设计

Microsoft Windows程序设计

佩措尔德 / 章立民 / 华中科技 / 2004-1 / 118.00元

Charles Petzold是全球最权威且知名的Windows程序设计专家,他将其最畅销Programming Microsoft Windows with C#一书加以改写,使之能完全适用于Visual Basic.NET的开发人员。这位畅销书的作家示范了如何使用Visual Basic.NET将Windows Forms的功能发挥到极致(Windows Forms是新一代的Windows程序......一起来看看 《Microsoft Windows程序设计》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具