This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:exceptions_intro [2015/03/03 07:33] gthanos [Χειρισμός της εξαίρεσης σε υψηλότερο επίπεδο] |
java:exceptions_intro [2015/03/03 07:57] gthanos [Δημιουργία ενός νέου τύπου εξαίρεσης και πυροδότηση εξαίρεσης] |
||
---|---|---|---|
Line 297: | Line 297: | ||
catch(IOException ex) { | catch(IOException ex) { | ||
System.out.println("IOException occured while reading from file "+path); | System.out.println("IOException occured while reading from file "+path); | ||
- | System.out.println("Exiting..."); | ||
- | System.exit(1); | ||
} | } | ||
return strDocument.toString(); | return strDocument.toString(); | ||
Line 313: | Line 311: | ||
} | } | ||
catch(IOException ex) { | catch(IOException ex) { | ||
- | System.out.println("IOException occured while reading from file "+path); | + | System.out.println("IOException occured while closing file "+path); |
- | System.out.println("Exiting..."); | + | |
- | System.exit(1); | + | |
} | } | ||
} | } | ||
Line 338: | Line 334: | ||
</code> | </code> | ||
- | Στον παραπάνω κώδικα βλέπουμε την περίπτωση στην οποία __δεν__ διαχειριζόμαστε την εξαίρεση εντός της μεθόδου ''readFile'' αλλά αφήνουμε να περνάμε την εξαίρεση στην μέθοδο που την καλεί (στην περίπτωση μας η ''main'') και την διαχειριζόμαστε εκεί. Eφόσον δεν διαχειριζόμαστε το Exception στην δήλωση της μεθόδου υπάρχει η επιπλέον δήλωση ''throws FileNotFoundException'', όπου περιγράφεται ποια Exceptions μπορεί να "πετάξει" η κάθε μέθοδος στις μεθόδους που την καλούν. Μία μέθοδος μπορεί να κάνει **throw** περισσότερα του ενός Exceptions. Η δήλωση throw υποχρεώνει τον compiler να βγάλει error | + | Στον παραπάνω κώδικα βλέπουμε την περίπτωση στην οποία __δεν__ διαχειριζόμαστε την εξαίρεση εντός της μεθόδου ''readFile'' αλλά αφήνουμε να περνάμε την εξαίρεση στην μέθοδο που την καλεί (στην περίπτωση μας η ''main'') και την διαχειριζόμαστε εκεί. Eφόσον δεν διαχειριζόμαστε το Exception στην δήλωση της μεθόδου υπάρχει η επιπλέον δήλωση ''throws FileNotFoundException'', όπου περιγράφεται ποια Exceptions μπορεί να "πετάξει" η κάθε μέθοδος στις μεθόδους που την καλούν. Μία μέθοδος μπορεί να κάνει **throw** περισσότερα του ενός Exceptions. Η δήλωση throw υποχρεώνει τον compiler να βγάλει σφάλμα |
- | * εάν δεν διαχειριστούμε το Exception στην μέθοδο από την οποία καλούμε την μέθοδο με την δήλωση **throw**. | + | * εάν δεν διαχειριστούμε τον συγκεκριμένο τύπο Exception στην μέθοδο από την οποία καλούμε την μέθοδο με την δήλωση **throw**. |
- | * ή εάν δεν έχουμε μία δήλωση **throw** στην μέθοδο από την οποία καλούμε την εν λόγω μέθοδο. | + | * ή εάν δεν έχουμε μία δήλωση **throw** για το συγκεκριμένο τύπο Exception στην δήλωση της μεθόδου από την οποία καλούμε την εν λόγω μέθοδο. |
- | ====== Πυροδότηση μιας εξαίρεσης ====== | + | ====== Δημιουργία ενός νέου τύπου εξαίρεσης και πυροδότηση εξαίρεσης ====== |
Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις του συστήματος. Πως όμως δημιουργούνται αυτές οι εξαιρέσεις και πως και εμείς μπορούμε να καλέσουμε μια εξαίρεση; | Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις του συστήματος. Πως όμως δημιουργούνται αυτές οι εξαιρέσεις και πως και εμείς μπορούμε να καλέσουμε μια εξαίρεση; | ||
Line 377: | Line 373: | ||
catch(IOException ex) { | catch(IOException ex) { | ||
System.out.println("IOException occured while reading from file "+path); | System.out.println("IOException occured while reading from file "+path); | ||
- | System.out.println("Exiting..."); | ||
- | System.exit(1); | ||
} | } | ||
if( strDocument.toString().isEmpty() ) { | if( strDocument.toString().isEmpty() ) { | ||
Line 394: | Line 388: | ||
catch(IOException ex) { | catch(IOException ex) { | ||
System.out.println("IOException occured while reading from file "+path); | System.out.println("IOException occured while reading from file "+path); | ||
- | System.out.println("Exiting..."); | ||
- | System.exit(1); | ||
} | } | ||
} | } |