Lecture overview -- Keyboard shortcut: 'u'  Previous page: Instantiering og 'kastning' af exceptions -- Keyboard shortcut: 'p'  Next page: Propagering af exceptions (1) -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 16 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Undtagelseshåndtering
Håndtering af exceptions i en metode

Når fejlen skal håndteres sker det i en metodes exception handler. Vi ser her på de sproglige mekanismer i Java, der tillader os at knyttet exception handlers til kommandoer i en metodes krop

Try konstruktionen udgør scopet for undtagelseshåndtering i Java


try{
 kommando-liste-0
}
catch (exception-klasse-1 formel-parameter-1){
 kommando-liste-1
}
catch (exception-klasse-2 formel-parameter-2){
 kommando-liste-2
}
...

Syntaks for try kommandoen i Java. Det giver mening at tænke på denne som en form for kontrolstruktur i sproget. En try konstruktion udgør scopet for fejlhåndtering. Kommandoblokken i try delen udføres (eller forsøges udført, som antydet af 'try syntaksen'). Hvis der herved opstår en undtagelse vil denne blive forsøgt håndteret af en catch længere fremme i konstruktionen. Den første catch som matcher det exception, som er opstået, binder undtagelsesobjektet til den formelle parameter (ligesom ved parameteroverførsel) hvorefter blokken efter catch udføres. Der udføres kun denne ene catch. Catches må ikke gentages, men det er tilladt at fange en specifik exception først for dernæst at fange en mere generel exception.

Der udføres kun én catch clause, som matcher exception objektet

De første catch clauses kan være specialiserede - og de sidste mere generelle

Den formelle exception parameter er polymorf

At den formelle exception parameter er polymorf betyder, at den kan antage exceptions, som er instanser af vilkårlige subklasser af den angivne exception klasse

/user/normark/courses/prog1/prog1-01/sources/noter/includes/TryFragment.javaEt konkret eksempel på en try catch konstruktion.

Et konkret eksempel på en try catch konstruktion. De metoder, som kan forårsage kastning af et exception er refereret andetsteds fra denne side.