51Testing软件测试论坛

标题: 【转】Selenium2 Python 自动化测试实战学习笔记(肆) [打印本页]

作者: frances720    时间: 2016-4-26 10:34
标题: 【转】Selenium2 Python 自动化测试实战学习笔记(肆)
本帖最后由 frances720 于 2016-4-26 10:38 编辑

3.6  异常

Python用异常对象(exception object来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。

Python提供try..except..语句来接收这个异常。

         在python中所有的异常都继承Exception,所以我们可以使用它来接收所有的异常。

    Abnormal.py

                            Try:

                Open(“abc.txt”,”r”)

                                     Printaa

          Except Exception:

                                     Print “异常了”

从python2.5版本之后,所有异常类有了新的基类BaseException,Exception同样也继承BaseException,所以我们也可以使用BaseException来接收所有的异常。

Python直接输出异常信息:

Abnormal.py

                            Try:

                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.py

                            Try:

                Open(“abc.txt”,”r”)

                                     Printaa

          Except BaseException,msg:

                                     Print msg
           Else:
                                     Print ‘没有异常!’

Else语句只有在没有异常的情况下才会被执行,但是有些情况下不管是否出现异常这些操作都能被执行,比如文件的关闭,所得释放,把数据库连接返还给连接池等操作。我们可以使用Try…finally..语句来完成。

首先创建一个poem.txt文件:

Pome.txt

ABC

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.py

Filename=raw_input(‘please input filename:’)

If filename==’hello’:

   Raise NameError(‘input file name error!’)







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2