Python用异常对象(exception object来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。
Python提供try..except..语句来接收这个异常。
在python中所有的异常都继承Exception,所以我们可以使用它来接收所有的异常。
Abnormal.pyTry:
Open(“abc.txt”,”r”)
Printaa
Except Exception:
Print “异常了”从python2.5版本之后,所有异常类有了新的基类BaseException,Exception同样也继承BaseException,所以我们也可以使用BaseException来接收所有的异常。
Python直接输出异常信息:
Abnormal.pyTry:
Open(“abc.txt”,”r”)
Printaa
Except BaseException,msg:
Print msg在BaseException后面定义msg变量用于接收异常信息,通过print将其打印出来:
Python中常见的异常:BaseException 新的所有异常类的基类
Exception 所有异常类的基类,但继承BaseException 类
AssertionError assert 语句失败
AttributeError 试图访问一个对象没有属性
IOError 输入输出异常,试图打一个不存的文件(包括其它情况)时引起
NameError 使用一个还未赋值对象的变量
IndexError 在使用序列中不存在的所引进引发
IndentationError 语法错误,代码没有正确的对齐
KeyboardInterrupt Ctrl+C 被按下,程序被强行终止
TypeError 传入的对象类型与要求不符
SyntaxError Python 代码逻辑语法出错,不能执行3.6.2更多异常用法
try...except 与else 配合使用:
Abnormal.pyTry:
Open(“abc.txt”,”r”)
Printaa
Except BaseException,msg:
Print msgElse语句只有在没有异常的情况下才会被执行,但是有些情况下不管是否出现异常这些操作都能被执行,比如文件的关闭,所得释放,把数据库连接返还给连接池等操作。我们可以使用Try…finally..语句来完成。
首先创建一个poem.txt文件:
Pome.txtABC
EFG
HIJK
LMN
OPQ通过一个小程序来读取文件中的内容。
ReadFile.py#coding=utf-8
Import time
Files=file(“poem.txt”,”r”)
Strs=Files.readlines()
Try:
For I in strs:
Print I
Time.sleep(1)
Finally:
Files.close()
Print “Clean up…closed the file”3.6.3抛出异常
Python中提供raise方法来抛出一个异常:Abnormal.pyFilename=raw_input(‘please input filename:’)
If filename==’hello’:
Raise NameError(‘input file name error!’)欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |