版权所有,未经许可,禁止转载
try块让你可以检测代码块中的错误。
except块让你可以处理错误。
finally块让你可以执行最终代码,不管try与except块的结果如何,finally块的代码都将执行。
异常处理
当错误(或者异常)发生时,Python通常会停止执行,并报错。
这些异常可以使用try/except语句处理:
示例
下面try块会产生异常,因为x没有定义:
try:
print(x)
except:
print("发生异常")
因为try块引发错误,所以except块将被执行。
如果没有try块,程序将崩溃并引发错误:
示例
这个语句会产生一个错误,因为x没有定义:
print(x)
多个except
可以定义多个except,例如,可以为一种特殊错误定义一个专门的except代码块:
示例
这个语句会产生一个错误,因为x没有定义:
try:
print(x)
except NameError:
print("变量x没有定义")
except:
print("其他错误")
else
可以使用else关键字来定义一个代码块,如果没有错误发生,else代码块将被执行:
示例
在这个例子中,try块不会产生任何错误:
try:
print("你好")
except:
print("出错了")
else:
print("一切正常")
finally
如果定义了finally块,则无论try块是否引发错误,都会执行finally块。
示例
try:
print(x)
except:
print("出错了")
finally:
print("'try except'处理结束")
这对于关闭对象、清理资源非常有用:
示例
尝试写一个不可写的文件:
try:
f = open("test.txt")
f.write("奇客谷教程")
except:
print("写文件出错了")
finally:
f.close() # 关闭文件
文件被关闭。