Start | try except
 

try ... except



Låt säga att du vill hämta in data från användaren. Du vill hämta ett tal (flyttal).
s = input() t = float(s) print("Du skrev in talet", t)
Sålänge användaren verkligen matar in ett tal så är alla glada och nöjda. Men vad händer om användaren matar in "Kalle" ?

Vi får körningsfel! (error)

Ett sätt att hantera detta är med try ... except. Så istället för att självsäkert utgå ifrån att användaren verkligen matar in ett tal, så kör vi istället attityden att vi försöker fråga efter ett tal men förbereder oss på ett misslyckande.
s = input() try: t = float(s) print("Du skrev in talet", t) except: print("Du skrev inget tal, men jag överlever!")
Vi kan skapa en loop och insistera att användaren verkligen skriver in ett tal.
tal_inmatat = False text = "Skriv in ett tal" while(not tal_inmatat): s = input(text) try: t = float(s) print("Du skrev in talet", t) tal_inmatat = True except: text = "Du skrev inget tal, försök igen!" print("Tack för att du matatde in ett tal!")

raise

Vi kan framkalla ett Error i vårt program med raise.
x = "340" if not type(x) is int: raise TypeError("GO ELLER! Bara int tillåtet!")

Lite frågor

Vad är poängen med try .. except
  Fånga upp fel som kan inträffa och slussa koden till ett stycke som hanterar felet
  Att man slipper skriva bra kod, man kan basically köra except på allt som kan gå fel


21.54016494751 ms