Undtagelseshåndtering (try/except/finally)
Kommunikation og IT A · HTX · A-niveau · Avanceret programmering
💻 Undtagelseshåndtering
Fejl i Python opdeles i syntaksfejl (koden er forkert skrevet) og undtagelser/exceptions (fejl under kørsel, fx division med nul).
Grundstruktur:
```python
try:
resultat = 10 / int(input("Indtast tal: "))
except ZeroDivisionError:
print("Kan ikke dividere med nul!")
except ValueError:
print("Indtast venligst et heltal")
else:
print(f"Resultat: {resultat}") # køres kun hvis ingen fejl
finally:
print("Programmet er færdigt") # køres ALTID
```
Vigtige exception-typer: ValueError, TypeError, IndexError, KeyError, FileNotFoundError, ZeroDivisionError.
Eget exception-hierarki:
```python
class BrugerFejl(Exception):
pass
raise BrugerFejl("Ugyldigt brugernavn")
```
Regel: Fang KUN de exceptions du forventer — aldrig nøgen except: (skjuler alle fejl).
Læringsmål
- Implementere try/except/else/finally korrekt
- Identificere hvilke exceptions der kan opstå i koden
- Oprette og kaste brugerdefinerede exceptions
- Undgå tomme except-blokke der skjuler fejl
Sådan kan du arbejde med emnet
- Skriv et program der beder brugeren om et tal og håndterer fejlen, hvis brugeren indtaster bogstaver
- Forklar forskellen på except og finally med et eksempel der lukker en fil
- Giv et eksempel på en situation hvor det er bedre at lade en undtagelse forplante sig end at fange den
Træningsforslag
- Byg en filhåndtering med exception-håndtering for FileNotFoundError
- Lav et inputvalideringssystem med brugerdefinerede exceptions
- Analyser et program og find alle mulige fejlpunkter
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis