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 ValueError och FileNotFoundError.
  • 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/except fö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.

Tillbaka till Kapitel 4