Python try except

该块允许您测试代码块的错误。try

该块允许您处理错误。except

该块允许您执行代码,而不管 try- 和除块的结果如何。finally


异常处理

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

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

例子

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

 try:
  print(x)
except:
  print("An exception occurred")

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

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

例子

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

 print(x)

许多例外

您可以定义尽可能多的异常块,例如,如果要为特殊错误执行特殊代码块:

例子

如果 try 块引发其他错误,请打印一条消息: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")

最后

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

例子

try:

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 不是整数,请引发类型Error:

 x = "hello"

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