java:exceptions_throwing
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
java:exceptions_throwing [2021/03/22 19:44] – [Δημιουργία νέων τύπων εξαιρέσεων και πυροδότηση εξαίρεσης] gthanos | java:exceptions_throwing [2021/03/23 07:34] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Δημιουργία νέων τύπων εξαιρέσεων και πυροδότηση εξαίρεσης ====== | ====== Δημιουργία νέων τύπων εξαιρέσεων και πυροδότηση εξαίρεσης ====== | ||
- | Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις της βασικής βιβλιοθήκης. Πως όμως δημιουργούνται | + | Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις της βασικής βιβλιοθήκης. Πως όμως δημιουργούνται |
Επανερχόμενοι στο προηγούμενο παράδειγμα, | Επανερχόμενοι στο προηγούμενο παράδειγμα, | ||
- | <code java AbnormalSituationException.java> | + | <code java AbnormalSituationException.java> |
public class AbnormalSituationException extends java.lang.Exception { | public class AbnormalSituationException extends java.lang.Exception { | ||
| | ||
Line 25: | Line 25: | ||
import java.util.InputMismatchException; | import java.util.InputMismatchException; | ||
- | public class ExceptionHandling_7 | + | public class ExceptionHandling |
public static int readInt(Scanner sc) throws AbnormalSituationException { | public static int readInt(Scanner sc) throws AbnormalSituationException { | ||
Line 57: | Line 57: | ||
} | } | ||
</ | </ | ||
- | ===== Παραγωγή εξαίρεσης ===== | ||
- | Όπως τονίσαμε και παραπάνω η εξαίρεση είναι και αυτή ένα αντικείμενο. __Για να παράγουμε μία εξαίρεση πρέπει να βάλουμε τη δεσμευμένη λέξη **throw** και δίπλα το αντικείμενο της εξαίρεσης που θέλουμε να καλέσουμε__. Στο παρακάτω παράδειγμα, | ||
- | <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(" | + | |
- | } | + | |
- | if( strDocument.toString().isEmpty() ) { | + | |
- | throw new EmptyFileException(); | + | |
- | } | + | |
- | return strDocument.toString(); | + | |
- | } | + | |
- | + | ||
- | finally { | + | |
- | if( fReader != null) { | + | |
- | try { | + | |
- | // | + | |
- | 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(" | + | |
- | } | + | |
- | catch(EmptyFileException ex) { | + | |
- | System.out.println(" | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | </ | + | |
- | + | ||
- | |Προηγούμενο: | + | |
java/exceptions_throwing.1616442269.txt.gz · Last modified: 2021/03/22 19:44 (external edit)