这里有新鲜出炉的 Python 教程,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
之前在学习 python 的时候有整理过 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结合用法
- 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()
来源: http://www.phperz.com/article/17/0622/336202.html