轻松上手,快乐学习!

Python 异常处理


try块是允许测试代码块并查找错误。 except代码块是用来处理错误。 finally无论try块和except块的结果如何,都会执行代码块。

异常处理

当调用程序发生错误或异常时,Python通常会停止并生成错误消息。 我们可以使用try语句处理这些异常:

实例

因为 x 未定义,try 块将生成异常
try:
  print(x)
except:
  print("An exception occurred")
运行实例 »
由于try块引发错误,因此将执行except块。 如果没有try块,程序将崩溃并引发错误:

实例

此语句将引发错误,因为x未定义:
print(x)
运行实例 »

多个异常块

可以根据需要定义任意数量的异常块,例如,如要为特殊类型的错误执行特殊代码块:

实例

在try 块内引发了 NameError 而别一条消息引发其它错误,则打印出
try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")
运行实例 »

else

如果没有引发错误,您可以使用else关键字来定义要执行的代码块:

实例

try块中不产生任何错误:
try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")
运行实例 »

finally

无论try块是否引发错误,都将执行finally块(如果已指定)。

实例

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")
运行实例 »
这对于关闭对象和清理资源非常有用:

实例

试着打开并写入一个不可写的文件:
try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Something went wrong when writing to the file")
finally:
  f.close()
运行实例 »
程序继续执行拼关闭文件打开对象