Programmering nivå 2
Kap 4.2 – Try/except och felsökning
Hantera fel och hitta buggar i din kod.
Mål med lektionen
När du har arbetat klart med denna lektion ska du:
- Förstå varför fel uppstår i program.
- Känna till vanliga undantag i Python.
- Använda try/except för att fånga fel och fortsätta programflödet.
- Skriva tydligare och mer felsäker kod.
Så här lär du dig bäst
För att förstå try/except måste du testa vad som händer när något går fel. Skriv kod
som kraschar och se hur Python rapporterar felet. Använd sedan try/except för att
hantera det. Arbeta med små exempel och koppla dem till tidigare uppgifter, till exempel fel vid
filhantering eller felaktig inmatning från användaren.
Centrala begrepp
- undantag (exceptions) - Fel som uppstår när program körs, till exempel
ValueErrorochFileNotFoundError. - try/except - Konstruktion som fångar fel utan att programmet kraschar.
- felmeddelanden - Hjälper dig förstå vad som gick fel och var.
Innehåll och exempel
Exempel: konverteringsfel
try:
tal = int(input("Skriv ett heltal: "))
print(f"Du skrev: {tal}")
except ValueError:
print("Fel: Du måste skriva ett heltal!")
ValueError kan uppstå när programmet försöker göra om en text till ett tal, men texten
inte har rätt format.
Exempel: fil saknas
try:
with open("saknas.txt", "r") as f:
innehåll = f.read()
except FileNotFoundError:
print("Filen hittades inte.")
Det här exemplet visar hur du fångar ett vanligt filfel när en fil inte finns. Då skriver programmet ut ett tydligt meddelande i stället för att krascha.
Exempel: generellt fel
try:
tal = int(input("Skriv ett tal att dividera 10 med: "))
resultat = 10 / tal
print(f"Resultatet blir {resultat}")
except ZeroDivisionError:
print("Du kan inte dividera med noll!")
Om användaren skriver till exempel 2 fungerar programmet och skriver ut resultatet
5.0. Om användaren skriver 0 fångas felet av except och
programmet visar ett tydligt felmeddelande i stället för att krascha.
Felsökning
När ett fel uppstår visar Python ett spår, en traceback, som berättar vilken typ av fel som inträffade, var i koden felet uppstod och vilken kodrad som orsakade felet.
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Det betyder att programmet försökte addera ett heltal och en text, vilket inte går.
Tips för bättre felsökning
- Lägg till tydliga felmeddelanden i
except. - Använd
print()för att spåra vad som händer före felet. - Testa delar av programmet i taget.
- Kommentera kodstycken om du inte vet var felet ligger.
Sammanfattning
- Fel är en naturlig del av programmering - det viktiga är hur du hanterar dem.
- Du kan använda
try/exceptför att fånga fel och visa vänliga meddelanden. - Felsökning handlar om att förstå vad som händer i programmet och varför.