This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:exceptions_try_with_resources [2015/03/09 07:29] gthanos |
java:exceptions_try_with_resources [2017/02/16 15:09] (current) gthanos |
||
---|---|---|---|
Line 19: | Line 19: | ||
//throw new IOException(); | //throw new IOException(); | ||
} | } | ||
- | fReader.close(); | ||
return strDocument.toString(); | return strDocument.toString(); | ||
} | } | ||
Line 48: | Line 47: | ||
</code> | </code> | ||
- | όπου ανοίγουμε ένα resource πριν εισέλθουμε στο σώμα του **try** block. Σε αυτό το τμήμα κώδικα η ιδιαιτερότητα είναι ότι δεν χρειάζεται να ανησυχούμε για το αν θα κλείσω σωστά το FileReader object ή όχι. Ανεξάρτητα από το αν θα δημιουργηθεί Exception ή όχι, το **JVM** θα αναλάβει να κλείσει το FileReader object αν αυτό παραμένει ανοιχτό. Απαραίτητη προϋπόθεση για να συμβεί το παραπάνω είναι η κλάση του αντικειμένου που θα δημιουργηθεί να υποστηρίζει το interface [[http://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html|java.lang.Autoclosable]] και τα sub-interfaces αυτού (π.χ. [[http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html|java.io.Closable]]). | + | όπου ανοίγουμε ένα resource πριν εισέλθουμε στο σώμα του **try** block. Σε αυτό το τμήμα κώδικα η ιδιαιτερότητα είναι ότι δεν χρειάζεται να ανησυχούμε για το αν θα κλείσει σωστά το FileReader object ή όχι. Ανεξάρτητα από το αν θα δημιουργηθεί Exception ή όχι, το **JVM** θα αναλάβει να κλείσει το FileReader object αν αυτό παραμένει ανοιχτό. Απαραίτητη προϋπόθεση για να συμβεί το παραπάνω είναι η κλάση του αντικειμένου που θα δημιουργηθεί να υποστηρίζει το interface [[http://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html|java.lang.Autoclosable]] ή ένα από τα sub-interfaces αυτού (π.χ. [[http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html|java.io.Closable]]). |
Στην ίδια λογική μπορούμε να έχουμε περισσότερες από μία δηλώσεις κώδικα μέσα στην παρένθεση του try block όπως παρακάτω | Στην ίδια λογική μπορούμε να έχουμε περισσότερες από μία δηλώσεις κώδικα μέσα στην παρένθεση του try block όπως παρακάτω | ||
Line 60: | Line 59: | ||
</code> | </code> | ||
- | |Προηγούμενο: [[:java:exceptions_throwing | Δημιουργία και πυροδότηση εξαιρέσεων]] | Επόμενο: [[:java:file_io_intro | Είσοδος και έξοδος αρχείων ]]| | + | |Προηγούμενο: [[:java:exceptions_throwing | Δημιουργία και πυροδότηση εξαιρέσεων]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[:java:exception_categories | Κατηγορίες Εξαιρέσεων ]]| |