Μία από τις απορίες που είχα πριν από λίγες μέρες ήταν τι γίνεται αν έχουμε μία μέθοδο που επιστρέφει τιμή, ο κώδικάς της βρίσκεται σε ένα μπλοκ 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. Για να μην έχει κανείς απορροία δηλαδή!