python异常和错误

来源:互联网 发布:手机淘宝如何发布宝贝 编辑:程序博客网 时间:2024/05/16 08:15

1、try……except

try:    try_suiteexcept:    exception block

上面except子句不跟任何异常和异常参数,所以无论try捕获了任何异常,都将交给except子句的exception block来处理。
如果我们要处理特定的异常,比如说,我们只想处理除零异常,如果其他异常出现,就让其抛出不做处理,该怎么办呢?这个时候,我们就要给except子句传入异常参数啦!那个ExceptionN就是我们要给except子句的异常类(请参考异常类那个表格),表示如果捕获到这类异常,就交给这个except子句来处理。比如:

try:    floatnum = float(raw_input("Please input a float:"))    intnum = int(floatnum)    print 100/intnumexcept ZeroDivisionError:    print "Error:you must input a float num which is large or equal then 1!"except ValueError:    print "Error:you must input a float num!"

*Python异常类*
NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形

2、try……except……else
作用:就是当没有检测到异常的时候,则执行else语句

3、finally子句
finally子句是无论是否检测到异常,都会执行的一段代码。我们可以丢掉except子句和else子句,单独使用try…finally,也可以配合except等使用。

4、断言
断言就是判断是否跟预期结果一致,不一致的话,测试用例直接失败,程序便不再执行下去。

assert expression[,reason]

assert是断言的关键词,执行该语句的时候,先判断表达式expression,如果表达式为真,则什么都不做;如果表达式不为真,则抛出异常。
断言使用的主要是assertEqual的方法
如验证百度搜索的标题是否为“123_百度搜索”

self.assertEqual(u"123_百度搜索",driver.title)  

如要验证是否为false

self.assertFalse(driver.title)  

如要验证是否为true

self.assertTrue(driver.title)  

而验证为了保证失败也能正常运行下去,一般情况下都是在验证的基础上加异常捕获
如验证百度搜索的标题是否为“123_百度搜索”

try:              self.assertEqual(u"1234_百度搜索", driver.title)  except AssertionError as e:              print u"找不到这个标题"
0 0
原创粉丝点击