Python 异常处理(Try…Except)

try块让你可以检测代码块中的错误。

except块让你可以处理错误。

finally块让你可以执行最终代码,不管tryexcept块的结果如何,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() # 关闭文件

文件被关闭。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载