代码中的错误分两大类:错误和异常
错误:主要是语法错误,在敲代码时候编辑器提示的错误。
异常:一段代码在运行前无法判断是否会出错。运行时可能出错,也可能不出错。
为什么要捕获异常呢?
例如下面代码,运行前无法判断是否能写入成功。如果没有异常,那么这样写是可以的,执行完写入之后会打印“完成”两字。
f = open("测试.txt", "w")
f.write("写入点内容到上面的测试文件,用于测试异常!!")
f.close()
print("完成")如果我把文件属性设置为了只读。

再执行上面代码,将会报一个异常,无法使用写模式打开。程序到此结束,无法打印后面的“完成”。

当使用捕获异常后,如果出现了异常,那么代码将在执行try出现异常时跳转到执行except中的代码,无论try中的代码是否有异常,程序最终依旧能走下去。
try:
f= open("测试.txt", "w")
f.write("写入点内容到测试文件,用于测试异常!!")
except IOError:
print("Error: 没有找到文件或读取文件失败")
else:
print("内容写入文件成功")
f.close()
print("完成")执行完输出结果可以看到输出了错误并打印了完成,说明程序没有被异常打断。

菜鸟教程Python3中有详细捕获异常类型,这里不重复解答,附上学习链接:https://www.runoob.com/python3/python3-errors-execptions.html
注意:Python 2和3中对except子句的处理方式不一样。
Python2
try:
pass
except OSError, err: # , 加参数名称
print ('Exception is: ', err)
Python3
try:
pass
except OSError as err: # as 加参数名称
print ('Exception is: ', err)
版权声明:本文为weixin_41078495原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。