目录

Python Try...Except


这个tryblock 允许您测试代码块是否有错误。

这个except块可以让您处理错误。

这个else块允许您在没有错误时执行代码。

这个finally块允许您执行代码,而不管 try 和 except 块的结果如何。


异常处理

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

这些异常可以使用以下方法处理try陈述:

示例

这个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关键字定义在没有引发错误的情况下要执行的代码块:

示例

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

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

最后

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

示例

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")
亲自试一试 »

这对于关闭对象和清理资源非常有用:

示例

尝试打开并写入不可写的文件:

try:
  f = open("demofile.txt")
  try:
    f.write("Lorum Ipsum")
  except:
    print("Something went wrong when writing to the file")
  finally:
    f.close()
except:
  print("Something went wrong when opening the file")
亲自试一试 »

程序可以继续,而无需使文件对象保持打开状态。


引发异常

作为 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")
亲自试一试 »