Python/python try except

来自菜鸟教程
跳转至:导航、​搜索

<languages />

Python尝试除

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

The except 块可让您处理错误。

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

异常处理

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

这些异常可以使用 try 声明:

The try 块将生成异常,因为 x 没有定义:

  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")

最后

The 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")

The raise 关键字用于引发异常。

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

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

    x = "hello"

if not type(x) is int:
  raise TypeError("Only 
    integers are allowed")