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_throwing [2015/03/09 07:11] gthanos |
java:exceptions_throwing [2021/03/22 21:43] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Δημιουργία νέων τύπων εξαιρέσεων και πυροδότηση εξαίρεσης ====== | ====== Δημιουργία νέων τύπων εξαιρέσεων και πυροδότηση εξαίρεσης ====== | ||
| - | Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις του συστήματος. Πως όμως δημιουργούνται αυτές οι εξαιρέσεις και πως και εμείς μπορούμε να καλέσουμε μια εξαίρεση; | + | Στις προηγούμενες ενότητες είδαμε τον τρόπο με τον οποίο χειριζόμαστε μια εξαίρεση. Μέχρι αυτό το σημείο έχουμε αναφερθεί σε εξαιρέσεις που παρέχονται από κλάσεις της βασικής βιβλιοθήκης. Πως όμως δημιουργούνται αυτές οι εξαιρέσεις και πως και εμείς μπορούμε να καλέσουμε μια εξαίρεση; |
| - | Επανερχόμενοι στο παράδειγμα ανάγνωσης | + | Επανερχόμενοι στο προηγούμενο παράδειγμα, |
| - | <code java EmptyFileException.java> | + | <code java |
| - | public class EmptyFileException | + | public class AbnormalSituationException |
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| } | } | ||
| </ | </ | ||
| - | Όπως | + | Κατά την ανάγνωση από την γραμμή εντολών, εφόσον συμβεί ένα |
| - | <code java WholeFileReader.java> | + | <code java ExceptionHandling.java> |
| - | import java.io.*; | + | import java.util.Scanner; |
| - | import java.lang.*; | + | import java.util.NoSuchElementException; |
| + | import java.util.InputMismatchException; | ||
| - | public class WholeFileReader | + | public class ExceptionHandling |
| - | + | | |
| - | public | + | public |
| - | FileReader fReader = null; | + | |
| - | | + | |
| try { | try { | ||
| - | | + | |
| - | fReader = new FileReader(file); | + | } catch(NoSuchElementException |
| - | BufferedReader in = new BufferedReader(fReader); | + | throw new AbnormalSituationException(" |
| - | String inputLine; | + | |
| - | StringBuffer strDocument = new StringBuffer(); | + | |
| - | try { | + | |
| - | while ((inputLine = in.readLine()) != null) { | + | |
| - | strDocument.append(inputLine); | + | |
| - | } | + | |
| - | + | ||
| - | } | + | |
| - | | + | |
| - | 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 | + | public static |
| - | | + | |
| - | | + | |
| - | System.out.println(wfr.readFile(args[0]) | + | System.out.println(" |
| - | } | + | int height = readInt(sc); |
| - | | + | |
| - | System.out.println("No file has been specified!\n"); | + | |
| - | } | + | |
| - | | + | public static void main(String []args) { |
| - | System.out.println("The specified file was not found at "+ args[0]); | + | |
| - | } | + | try (Scanner sc = new java.util.Scanner(System.in)){ |
| - | catch(EmptyFileException ex) { | + | ratio = getRatio(sc); |
| - | System.out.println("File is empty!!!" | + | System.out.format("Ratio: %.2f", ratio); |
| + | } catch(AbnormalSituationException | ||
| + | System.out.println(ex); | ||
| + | StackTraceElement[] st = ex.getStackTrace(); | ||
| + | for(StackTraceElement e: st) | ||
| + | System.out.println(e); | ||
| } | } | ||
| } | } | ||
| - | |||
| } | } | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |Προηγούμενο: | ||