finally语句是不管是否发生错误都会被执行的,可以用于在错误发生时保存文件。
try:
print("try....")
r = 10 / 0
print("result", r)
except ZeroDivisionError as e:
print("except:", e)
finally:
print("finally...")
print("END....")
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
raise的作用是,如果我们知道某一段程序在不规范使用的时候就会引发错误那么我们可以提前将错误处理函数写好,他运行到这个地方如果数据类型什么的不规范那么就会产生错误,同时我们可以吧响应的错误处理提示写在raise语句里面,方便出错时其他人进行维护。
# 自动的raiseError
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s) #这句不会执行,但是后面的except还是会走到
except TypeError:
print "空对象没有长度"
s = None
if s is None:
raise NameError
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
#raise Exception("a应该是一个字符串")
Exception是所有常规错误的基类,不知道会发生什么错误的时候就可以使用这个
try:
a=1
except Exception as e:
print('he')
在进行错误处理的时候如果输入不符合我们的要求,我们可以手动的raise错误
raise Exception(" trim argument is need!")