Δευτέρα 26 Νοεμβρίου 2012

Try – catch – finally και return?

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

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου