Μία από τις απορίες που είχα πριν από λίγες μέρες ήταν τι γίνεται αν έχουμε μία μέθοδο που επιστρέφει τιμή, ο κώδικάς της βρίσκεται σε ένα μπλοκ try – catch – finally, και η εντολή return είναι είτε μέσα στην try είτε μέσα στην catch.
try { ... // Κώδικας της try ... return true; } catch (Exception ex) { ... // Κώδικας της catch ... return false; } finally { ... // Κώδικας της finally ... }
Όταν η εκτέλεση φτάσει στην εντολή return, εκτελείται η return και δεν εκτελείται η finally (επομένως ο κώδικας μας είναι προβληματικός) ή εκτελείται πρώτα η finally και μετά η return?
Όπως ήταν φυσικό η Java είναι έξυπνη γλώσσα και έτσι όταν φτάσει η ροή του κώδικα στην εντολή return εκτελείται πρώτα η finally και μετά η return. Για να μην έχει κανείς απορροία δηλαδή!
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου