Python Try Except

try Blocket tillåter dig att testa kodblock för att hitta fel.

except Blocket tillåter dig att hantera fel.

finally Blocket tillåter dig att köra kod, oavsett hur try- och except-blockens resultat är.

Undantagshantering

När vi anropar Python och ett fel eller undantag inträffar, stoppas ofta och ett felmeddelande genereras.

Du kan använda try Använd meningar för att hantera dessa undantag:

Exempel

try-blocket kommer att generera ett undantag eftersom x inte är definierad:

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

Kör Exempel

Eftersom try-blocket orsakade ett fel, kommer except-blocket att köras.

Om det inte finns något try-block, kommer programmet att krascha och orsaka ett fel:

Exempel

Denna mening kommer att orsaka ett fel, eftersom x inte är definierad:

print(x)

Kör Exempel

Flera undantag

Du kan definiera ett obegränsat antal exception-block, till exempel, om du vill köra specifik kod för specifika feltyper:

Exempel

Om try-blocket utlöser NameErrorSkriv ut ett meddelande, om det är ett annat fel, skriv ut ett annat meddelande:

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

Kör Exempel

Else

Om inget fel har utlöst, kan du använda else Använd nyckelord för att definiera den kodblock som ska köras:

Exempel

I detta exempel:try Blocket genererar ingen fel:

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

Kör Exempel

Finally

Om du har specificerat finally Om en block, så kommer finally-blocket att köras oavsett om try-blocket orsakar ett fel eller inte.

Exempel

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")

Kör Exempel

Detta är mycket användbart för att stänga objekt och rengöra resurser:

Exempel

Försök att öppna och skriva till en skrivskyddad fil:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Något gick fel när filen skrevs till")
finally:
  f.close()

Kör Exempel

Programmet kan fortsätta och filobjektet öppnas inte.

Utlösa undantag

Som Python-utvecklare kan du välja att utlösa undantag när villkor inträffar.

För att utlösa (utlösa) undantag används raise Nyckelord.

Exempel

Om x är mindre än 0, utlöser undantag och avbryter programmet:

x = -1
if x < 0:
  raise Exception("Förlåt, inga nummer under noll")

Kör Exempel

raise Nyckelord används för att utlösa undantag.

Du kan definiera den typ av undantag som utlöses och den text som skrivs ut till användaren.

Exempel

Om x inte är ett heltal, utlöser TypeError:

x = "hello"
if not type(x) is int:
  raise TypeError("Endast heltal är tillåtna")

Kör Exempel