04. februar 2002 - 10:32Der er
8 kommentarer og 1 løsning
Hvorfor finally?
Her er en typisk opbygning af try-catch og med finally til sidst - det har de fleste programmører set, men jeg forstår ikke hvorfor man skal have finally.
Øøøøøøh, yes? Programmet kører jo videre efter at "finally" er udført.......hvorved det næste bliver udført, med mindre der sker en "forgrening" i "finally" Finally bruges til at "rydde op", så som at lukke filer, netforbindelser osv.
Hvis din kode i try{} blokken kaster en exception vil koden efter try-catch-finally IKKE blive udført. Derfor skal vigtig kode som lukning af filer, netforbindelser osv. skrives i finally-blokken for derved at sikre at det vil blive udført SELVOM at der kastes en exception.
Ok, jeg skrev lidt forkert..det jeg menter er at når der kastes en exception i try-blokken vil resten af try blokken ikke blive udført hvorfor vigtig kode puttes i finally blokken.
Emh, nej. Der er to tilfælde hvor det ikke er sandt:
1. Hvis catch-blokken kaster en "ny" excpetion vil koden i finally-blokken blive udført, men det vil koden efter try-catch-finally IKKE.
2. Hvis der ikke er en catch-blok for den kastede exceoption vil den pågældende exception blive givet til den kaldende metode EFTER at koden i finally-blokken er udført. Derimod vil kode efter try-catch-finally IKKE blive udført.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.