Python Try Except

try Het blok laat u een codeblok testen op fouten.

except Het blok laat u fouten afhandelen.

finally Het blok laat u code uitvoeren, ongeacht het resultaat van het try- en except-blok.

Uitzonderingsafhandeling

Wanneer we Python aanroepen en er een fout of uitzondering optreedt, stopt het meestal en genereert het een foutbericht.

U kunt try Verwijdert deze uitzonderingen:

实例

Het try-blok zal een uitzondering genereren omdat x niet is gedefinieerd:

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

运行实例

Omdat het try-blok een fout oproept, zal het except-blok worden uitgevoerd.

Als er geen try-blok is, zal het programma crashen en een fout oproepen:

实例

Deze statement zal een fout oproepen, omdat x niet is gedefinieerd:

print(x)

运行实例

Meerdere uitzonderingen

U kunt een willekeurig aantal exception-blokken definiëren, bijvoorbeeld, als u speciale codeblokken wilt uitvoeren voor specifieke fouttypen:

实例

Als het try-blok een fout oproept NameErrorDruk een bericht af, als het om een andere fout gaat, druk een ander bericht af:

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")

运行实例

Else

Als er geen fout wordt opgeroepen, kunt u else Gebruik een sleutelwoord om een codeblok te definiëren dat moet worden uitgevoerd:

实例

In dit voorbeeld:try Het blok genereert geen fouten:

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")

运行实例

Finally

als gespecificeerd finally Als een blok, zal het altijd de finally-blok uitvoeren, ongeacht of het try-blok een fout oproept of niet.

实例

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

运行实例