自动化测试之异常详解(含代码演示)

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

常见异常类型
①AssertionError assert 语句失败

②AttributeError 试图访问一个对象没有属性

③IOError 输入输出异常,试图打一个不存的文件(包括其它情况)时引起

④NameError 使用一个还未赋值对象的变量

⑤IndexError 在使用序列中不存在的所引进引发

⑥IndentationError 语法错误,代码没有正确的对齐

⑦KeyboardInterrupt Ctrl+C 被按下,程序被强行终止

⑧TypeError 传入的对象类型与要求不符

⑨SyntaxError Python 代码逻辑语法出错,不能执行

BaseException与Exception
①BaseException 新的所有异常类的基类,可以接受一切异常

②Exception 所有异常类的基类,可以接受一切异常,但继承 BaseException 类

异常在程序的处理
①普通应用

try:
	open("abc.txt",'r')
	print aa
except BaseException,msg:
	print msg

② try…except 与 else 配合使用

try:
	aa = '异常测试'
	print aa
except Exception,msg:
	print msg
else:
	print '没有异常!' 打印结果:

else 语句只有在没有异常的情况下才会被执行,有异常执行的是异常下的语句\

③Try…finally

try:
	for l in strs:
		print l
		time.sleep(1)
finally:
	files.close()
	print 'Cleaning up ...closed the file'

不管这个程序是否存在异常都会执行finally下的语句与else存在很大的区别

生成异常
这个程序的运行是不会产生异常的,但是我们需要异常,所以我们采用raise生成一个异常

filename = raw_input('please input file name:')
if filename=='hello':
	raise NameError('input file name error !')

运行结果:
please input file name:hello
Traceback (most recent call last):
File “F:\project\count.py”, line 5, in
raise IOError(‘input file name error !’)
NameError: input file name error !
运行程序,要求用户输入文件名,通过用户输入的为“hello”,那么将抛出一个 NameError。其实用
户输入什么样的信息与 NameError 之间没有什么关系。但我们可以使用 raise 自定义一些异常信息,这看上去比 print 更专业。需要注意的是 raise 只能使用 Python 中所提供的异常类,如果你自定义了一个 abcError可不起作用。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值