Thursday, August 2, 2007

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. Για να μην έχει κανείς απορροία δηλαδή!

2 comments:

pek said...

Interesting..
Den blepw pou8ena plirofories gia sena omws.. Apo pou eisai..? Me ti asxoleisai..? Projects..? klp klp..

Anonymous said...

Τι απέγινες εσύ φίλε??? Φαινόταν πολλά υποσχόμενο το ιστολόγιο σου. Μήπως Παντρεύτηκες??