java:exceptions_try_catch_block2

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:exceptions_try_catch_block2 [2019/04/20 04:22]
gthanos [Άλλο παράδειγμα - Προσθέτοντας τους αριθμούς double που βρίσκονται μέσα σε ένα αρχείο κειμένου]
java:exceptions_try_catch_block2 [2019/04/20 04:41] (current)
gthanos [Finaly Block]
Line 110: Line 110:
 Παρατηρήστε ότι στη μέθοδο **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. Παρατηρήστε ότι στη μέθοδο **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.
  
-Επιπλέον ​στη ​μέθοδο **main** εμφανίζεται ένα **catch** block για μία εξαίρεση του τύπου [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​lang/​IndexOutOfBoundsException.html|IndexOutOfBoundsException]]+==== Επεξήγηση της συνάρτησης main ====
  
-===== Finaly ​Block =====+Η συνάρτηση **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 120: 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.1555734173.txt.gz · Last modified: 2019/04/20 04:22 by gthanos