|
|
Finally i forhold til return, break og continue | Finally konstruktionen bør også studeres i forbindelse med de hop-agtige muligheder, som understøttes i Java, og som vi har mødt allerede tidligt i dette kursus. |
|
| Illustration af finally i forhold til break.
I en while løkke fra i løbende fra 0 til 9 bryder vi løkken når i bliver 5.
I hver udførelse af try-finally aktiveres udskrivninger både i try og finally delen naturligvis.
Når i bliver 5 kaldes break, men vi kan ikke komme ud af try-finally uden også at udføre
finally den sidste gang (altså for i == 5).
|
| Output af ovenstående program.
Bemærk specielt det med rødt fremhævede som stammer fra finally konstruktionens udførelse
efter at løkken er brudt med break kommandoen
|
| Illustration af finally i forhold til continue.
Eksemplet minder om break eksemplet ovenfor. Variablen i løber igen
fra 0 til 9. Når i er lige afbrydes løkken med continue, hvilket bevirker
at vi umiddelbart går til den næste i værdi i gennemløbet. Men uanset om i
er lige eller ulige vil finally-delen blive udført.
|
| Output af ovenstående program.
Løkkegennemløb med en lige værdi af variablen i afbrydes midtvejs.
Men uanset om i er lige eller ulige afsluttes løkken i finally blokken.
De med rødt fremhævede liner stammer fra finally konstruktionen udført i de tilfælde,
hvor løkken er blevet 'fortsat' med kald af continue
|
Hvis vi anvender den grove måde at stoppe et program på, System.exit(0), forbigår vi alle finally konstruktioner. System.exit bør således undgås når andre midler er tilgængelige for programafslutning |
|