Page 11 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Undtagelseshåndtering
* Motivation og problemstillinger
Normal- og fejltilfælde behandles under ét
Fejl søges håndteret tæt på det sted hvor fejlene opstår
Unuanceret viden om fejlens natur
Hvilken slags fejlhåndtering?
* Terminologi og begreber
Mange forskellige ord
Grundliggende begreber
* Undtagelseshåndtering i Java
Oversigt over undtagelseshåndtering i Java
Catch or specify princippet i Java
Klassificering af undtagelser i Java
Beskrivelse af exception klasser i Java (1)
Beskrivelse af exception klasser i Java (2)
Instantiering og 'kastning' af exceptions
Håndtering af exceptions i en metode
Propagering af exceptions (1)
Propagering af exceptions (2)
Finally i Java's try blok (1)
Finally i forhold til return, break og continue
Erklæring af exceptions i metoder
Exceptions: Fristelser og byrder
* Undtagelseshåndtering i forlængelse af kontraktbegrebet
Kontrakter og undtagelser
En operation kan lykkes eller fejle
Exceptionhandling i en Eiffel routine
Catch or specify princippet i Java
Inden vi går videre nævner vi et princip, som er karakteristisk for Java's omgang med exceptions. Vi vender tilbage til emnet senere i lektionen
En metode skal enten fange en fejl
(catch)
eller erklære at metodekaldet kan føre til kastning af fejlen
(specify)
Catch:
Undtagelsen håndteres internt i metoden
Klienten behøver ikke at kende til eller bekymre sig om undtagelsen
Specify:
Metoden erklærer at den kan forårsage en exception
Undtagelsen skal håndteres eller videre specificeres af metoder i klienten
Et program med compile fejl.
Et program med compile fejl. Hovedprogrammet kalder eksplosion uden hverken at håndtere fejlen, eller specificere den.
Et program som håndterer et Problem.
Et program som håndterer et Problem. Hovedprogrammet håndterer via en try-catch konstruktion fejlen.
Et program som specificerer et Problem.
Et program som specificerer et Problem. Programmet går ned under kørslen, fordi Problem ikke håndteres nogetsteds.