THE WORLD'S LARGEST WEB DEVELOPER SITE

PythonTry_except


try块使您可以测试代码块是否存在错误。

except块使您可以处理错误。

finally块使您可以执行代码,而不管try-和except块的结果如何。


异常处理

当发生错误或异常时,Python通常会停止并生成错误消息。

这些异常可以使用以下try语句处理

try块将生成异常,因为x未定义:

try:
  print(x)
except:
  print("An exception occurred")
自己尝试»

由于try块引发错误,因此将执行except块。

没有try块,程序将崩溃并引发错误:

此语句将引发错误,因为x未定义:

print(x)
自己尝试»

许多例外

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

如果try块引发a NameError则打印一条消息,而其他错误则打印另一条消息

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")
自己尝试»


其他

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

在此示例中,该try块不会产生任何错误:

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")
自己尝试»

最后

finally如果指定了块,则无论try块是否引发错误,都将执行该块。

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()
自己尝试»

程序可以继续运行,而无需打开文件对象。


引发异常

作为Python开发人员,您可以选择在条件发生时引发异常。

要抛出(或引发)异常,请使用raise关键字。

如果x小于0,则引发错误并停止程序:

x = -1

if x < 0:
  raise Exception("Sorry, no numbers below zero")
自己尝试»

raise关键字用于抛出异常。

您可以定义引发哪种错误,以及向用户显示文本。

如果x不是整数,则引发TypeError:

x = "hello"

if not type(x) is int:
  raise TypeError("Only integers are allowed")
自己尝试»