Begreppsförståelse – Testning och undantagshantering
Vad är ett fel i ett program?
I programmering kan vi stöta på flera typer av fel:
| Typ av fel | Beskrivning | Exempel |
|---|---|---|
| Syntaxfel | Programmet följer inte språkets regler. | Glömt : efter if, felstavning |
| Körtidsfel/Exekveringsfel | Programmet kraschar under körning. | Dela med 0, öppna fil som inte finns |
| Logiskt fel | Programmet körs men gör fel sak. | Räknar fel eller visar fel meddelande |
Vad är undantag (exceptions)?
Ett undantag är ett speciellt fel som Python kastar när något går fel vid körning.
Exempel:
print(10 / 0) # ZeroDivisionErrorPython skriver ut ett felmeddelande (traceback) och avslutar programmet – om vi inte hanterar det.
Vad är undantagshantering?
Med hjälp av try och except kan vi fånga upp felet och hantera det utan att programmet kraschar:
try:
value = int(input("Enter a number: "))
except ValueError:
print("Du skrev inte ett heltal!")På det sättet kan programmet reagera på fel utan att avslutas oväntat.
Try och except gick även igenom i programmering 1.
Vad är testning?
Testning innebär att vi kontrollerar att vår kod gör det den ska.
Det kan göras på flera sätt:
- Testa manuellt med olika inputs
- Skriva kontrolluttryck med
assert - Använda automatiserade tester med
unittest
Exempel:
def add(a, b):
return a + b
assert add(2, 3) == 5 # Testar att funktionen fungerarOm villkoret inte stämmer → kastas ett AssertionError.