This shows you the differences between two versions of the page.
|
java:exceptions_thrown_by_methods [2015/03/09 07:09] gthanos |
java:exceptions_thrown_by_methods [2021/03/23 07:33] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Χειρισμός της εξαίρεσης σε υψηλότερο επίπεδο ====== | ||
| - | Στην προηγούμενη ενότητα δείξαμε πως μπορούμε να χειριστούμε μια εξαίρεση όταν προκύπτει. Η Java μας δίνει την δυνατότητα να μην διαχειριστούμε την εξαίρεση μέσα στην μέθοδο που προκύπτει, | ||
| - | |||
| - | - Κατ' | ||
| - | - Στην συνέχεια κάνουμε comment-out τις γραμμές που ελέγχουν το '' | ||
| - | - Τέλος διαχειριζόμαστε την εξαίρεση μέσα στη μέθοδο '' | ||
| - | |||
| - | <code java WholeFileReader.java> | ||
| - | |||
| - | import java.io.*; | ||
| - | import java.lang.*; | ||
| - | |||
| - | public class WholeFileReader { | ||
| - | | ||
| - | public String readFile(String path) throws FileNotFoundException { | ||
| - | FileReader fReader = null; | ||
| - | | ||
| - | try { | ||
| - | File file = new File (path); | ||
| - | fReader = new FileReader(file); | ||
| - | BufferedReader in = new BufferedReader(fReader); | ||
| - | String inputLine; | ||
| - | StringBuffer strDocument = new StringBuffer(); | ||
| - | try { | ||
| - | while ((inputLine = in.readLine()) != null) { | ||
| - | strDocument.append(inputLine); | ||
| - | } | ||
| - | | ||
| - | } | ||
| - | catch(IOException ex) { | ||
| - | System.out.println(" | ||
| - | } | ||
| - | return strDocument.toString(); | ||
| - | } | ||
| - | /* //Remove exception from here. Handle it at a higher level | ||
| - | catch(FileNotFoundException ex) { | ||
| - | System.out.println(" | ||
| - | }*/ | ||
| - | finally { | ||
| - | if( fReader != null) { | ||
| - | try { | ||
| - | System.out.println(" | ||
| - | fReader.close(); | ||
| - | } | ||
| - | catch(IOException ex) { | ||
| - | System.out.println(" | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | | ||
| - | } | ||
| - | | ||
| - | public static void main(String args[]) { | ||
| - | WholeFileReader wfr = new WholeFileReader(); | ||
| - | try { | ||
| - | System.out.println(wfr.readFile(args[0]) ); | ||
| - | } | ||
| - | catch(IndexOutOfBoundsException ex) { | ||
| - | System.out.println(" | ||
| - | } | ||
| - | catch(FileNotFoundException ex) { | ||
| - | System.out.println(" | ||
| - | } | ||
| - | } | ||
| - | |||
| - | } | ||
| - | </ | ||
| - | |||
| - | Στον παραπάνω κώδικα βλέπουμε την περίπτωση στην οποία __δεν__ διαχειριζόμαστε την εξαίρεση εντός της μεθόδου '' | ||
| - | * εάν δεν διαχειριστούμε τον συγκεκριμένο τύπο Exception στην μέθοδο από την οποία καλούμε την μέθοδο με την δήλωση **throw**. | ||
| - | * ή εάν δεν έχουμε μία δήλωση **throw** για το συγκεκριμένο τύπο Exception στην δήλωση της μεθόδου από την οποία καλούμε την εν λόγω μέθοδο. | ||
| - | |||
| - | |Προηγούμενο: | ||