java:exceptions_try_catch_block2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
java:exceptions_try_catch_block2 [2019/04/20 04:10]
gthanos created
java:exceptions_try_catch_block2 [2019/04/20 04:41] (current)
gthanos [Finaly Block]
Line 67: Line 67:
 Παρακάτω δίνεται ένα πιο σύνθετο παράδειγμα μία μεθόδου που ανοίγει ένα αρχείο κειμένου για διάβασμα,​ το οποίο περιέχει μόνο αριθμούς κινητής υποδιαστολής και επιστρέφει το άθροισμα των αριθμών αυτών. Παρακάτω δίνεται ένα πιο σύνθετο παράδειγμα μία μεθόδου που ανοίγει ένα αρχείο κειμένου για διάβασμα,​ το οποίο περιέχει μόνο αριθμούς κινητής υποδιαστολής και επιστρέφει το άθροισμα των αριθμών αυτών.
  
-<code java WholeFileReader.java>+<code java MyFileReader.java>
  
 import java.io.*; import java.io.*;
Line 108: Line 108:
 </​code>​ </​code>​
  
-Παρατηρήστε ότι εμφανίζονται δύο **catch** blocks. Το πρώτο catch block αφορά [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileNotFoundException.html|FileNotFoundException]] objects, ενώ το δεύτερο catch block αφορά [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​NoSuchElementException.html|NoSuchElementException]] objects. ​+Παρατηρήστε ότι ​στη μέθοδο **sumFileContents** ​εμφανίζονται δύο **catch** blocks. Το πρώτο catch block αφορά [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileNotFoundException.html|FileNotFoundException]] objects, ενώ το δεύτερο catch block αφορά [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​NoSuchElementException.html|NoSuchElementException]] objects.
  
-===== Finaly ​Block =====+==== Επεξήγηση της συνάρτησης main ==== 
 + 
 +Η συνάρτηση **main** διαβάζει ένα όνομα αρχείου από τη γραμμή εντολών και προσπαθεί να το ανοίξει για διάβασμα. Η γραμμή εντολών μας δίνει τη δυνατότητα να προσθέσουμε σε ένα πρόγραμμα παραμέτρους κατά την εκτέλεση του. Στο συγκεκριμένο παράδειγμα δίνουμε στο πρόγραμμα το όνομα ενός αρχείου από το οποίο θα διαβάσει. 
 + 
 +Ενδεικτικό περιεχόμενο για το αρχείο **input.txt** που δίνεται ως όρισμα είναι το παρακάτω 
 +<code input.txt>​ 
 +8.23 
 +1.31 
 +2.85 
 +9.63 
 +7.853 
 +</​code>​ 
 + 
 +Στη μέθοδο **main** εμφανίζεται ένα **catch** block για μία εξαίρεση του τύπου [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​IndexOutOfBoundsException.html|IndexOutOfBoundsException]]. Η συγκεκριμένη εξαίρεση παράγεται όταν προσπελάζεται μία θέση εκτός ορίων οποιουδήποτε πίνακα.  
 + 
 +Στο συγκεκριμένο παράδειγμα,​ εάν ο χρήστης παραλείψει να προσθέσει μία παράμετρο στη γραμμή εντολών κατά την εκτέλεση,​ ο πίνακας **args** θα έχει μέγεθος 0 και η προσπέλαση **args[0]** θα είναι εκτός ορίων του πίνακα. 
 + 
 + 
 +=== Πέρασμα παραμέτρων μέσω της γραμμής εντολών στο NetBeans === 
 + 
 +Το πέρασμα παραμέτρων μέσα από τη γραμμή εντολών στο NetBeans γίνεται ως εξής:  
 +  * Επιλέγεται **File -> Project Properties**. 
 +  * Σας ανοίγει το παράθυρο που φαίνεται παρακάτω.  
 +  * Επιλέγετε **Run** στο παράθυρο αυτό και συμπληρώνετε τα ορίσματα της γραμμής εντολών στο κουτάκι **Arguments** (είναι μαρκαρισμένο κόκκινο). 
 + 
 +{{:​java:​netbeansproperties1.png?​650|}} 
 + 
 + 
 +===== Finally ​Block =====
  
 Εκτός από τα **catch** blocks τα οποία εκτελούνται όταν έχουμε κάποιο exception, μπορούμε να προσθέσουμε ένα **finaly block** το οποίο θα εκτελεστεί __σε κάθε περίπτωση__. Το **finaly block** θα εκτελεστεί στις παρακάτω περιπτώσεις:​ Εκτός από τα **catch** blocks τα οποία εκτελούνται όταν έχουμε κάποιο exception, μπορούμε να προσθέσουμε ένα **finaly block** το οποίο θα εκτελεστεί __σε κάθε περίπτωση__. Το **finaly block** θα εκτελεστεί στις παρακάτω περιπτώσεις:​
Line 118: Line 146:
  
 Δείτε το παρακάτω παράδειγμα όπου ενσωματώνει ένα **finally** block. Δείτε το παρακάτω παράδειγμα όπου ενσωματώνει ένα **finally** block.
-<code java WholeFileReader.java>+<code java MyFileReaderUsingFinallyBlock.java>
  
 import java.io.*; import java.io.*;
java/exceptions_try_catch_block2.1555733441.txt.gz · Last modified: 2019/04/20 04:10 by gthanos