Undtagelseshåndtering (try/except/finally)
It A · STX · A-niveau · Avanceret programmering
💻 Undtagelseshåndtering (try/except/finally)
Exceptions er hændelser der afbryder normal programafvikling.
Python-hierarki: BaseException → Exception → ValueError, TypeError, IOError, KeyboardInterrupt osv.
Grundstruktur:
```python
try:
x = int(input("Skriv et tal: "))
resultat = 10 / x
except ValueError:
print("Ikke et tal!")
except ZeroDivisionError as e:
print(f"Division med nul: {e}")
else:
print(f"Resultat: {resultat}")
finally:
print("Kørte altid!") # cleanup-kode
```
else-blokken: kører kun hvis ingen exception opstod. finally-blokken: kører altid — brug til ressource-frigørelse (close filer, DB-forbindelser).
Custom exceptions: class MinFejl(Exception): pass. Giver semantisk mening til fejl i din kode.
Context managers (with): with open('fil.txt') as f: — automatisk close, selv ved undtagelse. Implementeret via __enter__/__exit__.
Best practices: fang specifikke undtagelser (aldrig bare except:), log undtagelser, gensmid med raise om nødvendigt.
Fail-fast princippet: afsløring fejl tidligt er bedre end stille fejl der propagerer.
Læringsmål
- Implementere OOP (klasser, arv, polymorfi, enkapsulering)
- Anvende rekursion og memoization
- Implementere og forklare Big-O for centrale datastrukturer
- Implementere merge sort og quicksort
- Anvende BFS og DFS på grafer
Sådan kan du arbejde med emnet
- Skriv en funktion, der læser en fil og håndterer FileNotFoundError og PermissionError separat med try/except
- Forklar, hvad finally-blokken bruges til, og giv et eksempel, der viser forskellen fra else-blokken
- Diskutér, hvornår man bør fange en exception frem for at lade programmet crashe
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis