异常
1.程序在运行的时候,如果python解释器遇到错误,会停止程序的执行,并且提示一些错误的信息。
2.程序开发的时候,很难将所有的特殊情况都处理,通过异常捕获可以针对突发时间做集中处理,从而保证程序的健壮性和稳定性
3.程序开发中,对某些代码的执行不能确定(程序语法完全正确),预先判断不到的,可以增加try来捕获异常
格式:
try:
尝试执行的代码(不能确定的代码,会出现异常错误)
except 错误类型1: #错误类型由测试人员进行调试出来的
针对错误类型1对应的错误的处理
except 错误类型2:
针对错误类型2对应的错误的处理
except Exception as result: #result为返回值,无法预知的错误
print '未知错误%s'%result
finally:
无论是否有异常,都会执行的代码
例子:
try:
# 提示用户输入一个整数
num = int(raw_input('输入一个整数:'))
# 使用8除以整数并且输出
result = 8 / num
print result
except ZeroDivisionError:
# print '0不能做除数'
except ValueError:
print '输入的值不是数字'
# 没有预先判断到的错误,但是如果出现,我们也不希望程序以外停止
except Exception as result:
print '未知错误 %s' % result
finally:
# 无论是否有异常,都会执行的代码
print '无论是否有异常,都会执行的代码'
4.函数的错误一级一级的去找,最终会将异常传递到主程序里面,所以应该将异常的处理写在主函数里面。
抛出异常
1.创建异常对象
ex = Exception('')
2.主动抛出异常
raise ex
3.只抛出异常而不捕获异常,代码会出错
断言
1.提前预言,让人更好的知道错误的原因
assert (div!=0),'div不能为0'