java:exceptions_intro

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
Next revision Both sides next revision
java:exceptions_intro [2017/02/06 15:18]
gthanos [Αντικείμενο της εξαίρεσης (exception object)]
java:exceptions_intro [2018/03/12 07:50]
gthanos
Line 8: Line 8:
 ====== Αντικείμενο της εξαίρεσης (exception object) ====== ====== Αντικείμενο της εξαίρεσης (exception object) ======
  
-Κάθε εξαίρεση που μπορεί να προκληθεί παράγει ένα αντικείμενο το οποίο περιέχει όλες τις πληροφορίες που έχουν να κάνουν με το μη αναμενόμενο γεγονός το οποίο έχει προκύψει, όπως ο τύπος του λάθους και η κατάσταση που βρισκόταν το πρόγραμμα όταν δημιουργήθηκε το γεγονός αυτό.+Κάθε εξαίρεση που μπορεί να προκληθεί παράγει ένα αντικείμενο το οποίο περιέχει όλες τις πληροφορίες που έχουν να κάνουν με το λάθος το οποίο έχει προκύψει, όπως ο τύπος του λάθους και την κατάσταση που βρισκόταν το πρόγραμμα όταν έγινε το λάθος αυτό.
  
 Σε αυτό το σημείο ας δούμε ένα πολύ απλό και συχνό λάθος που μπορεί να προκύψει αν δεν λάβει σχετική μέριμνα ο προγραμματιστής. Σε αυτό το σημείο ας δούμε ένα πολύ απλό και συχνό λάθος που μπορεί να προκύψει αν δεν λάβει σχετική μέριμνα ο προγραμματιστής.
Line 18: Line 18:
    
    public static void main (String[] args) {    public static void main (String[] args) {
-      int x; +      int x, y
-      int y; +      while(true) { 
-      int result; +          int result; 
-      Scanner input = new Scanner(System.in);+          Scanner input = new Scanner(System.in);
  
-      System.out.print( "Enter first integer: " ); +          System.out.print( "Enter first integer: " ); 
-      x = input.nextInt();+          x = input.nextInt();
  
-      System.out.print( "Enter second integer: " ); +          System.out.print( "Enter second integer: " ); 
-      y = input.nextInt(); +          y = input.nextInt(); 
-       +           
-      result = x/y; +          result = x/y; 
-       +           
-      System.out.printf( "Product is %d\n", result );+          System.out.printf( "Product is %d\n", result ); 
 +      }
    }    }
 } }
Line 38: Line 39:
 Τι θα συμβεί στο παραπάνω πρόγραμμα αν ο 2ος αριθμός που θα δώσει ο χρήστης είναι 0; Επίσης αν ο χρήστης δεν δώσει αριθμό σαν είσοδο αλλά γράμμα; Τι θα συμβεί στο παραπάνω πρόγραμμα αν ο 2ος αριθμός που θα δώσει ο χρήστης είναι 0; Επίσης αν ο χρήστης δεν δώσει αριθμό σαν είσοδο αλλά γράμμα;
  
-Όπως καταλαβαίνουμε, θα πρέπει να προβλέψουμε όλες τις περιπτώσεις (ή τουλάχιστον τις πιο βασικές) στις οποίες ο χρήστης είτε από λάθος είτε επειδή είναι κακόβουλος θα δώσει σαν είσοδο κάτι το οποίο δεν είναι σωστό και θα προκαλέσει πρόβλημα στην εκτέλεση του προγράμματος. Το παραπάνω παράδειγμα είναι ένα από τα προβλήματα που μπορούν να δημιουργηθούν σε ένα πρόγραμμα και θα πρέπει να το αντιμετωπίσουμε με σκοπό **να μην σταματήσει η εκτέλεση του προγράμματος**.+Όπως καταλαβαίνουμε, θα πρέπει να προβλέψουμε όλες τις περιπτώσεις (ή τουλάχιστον τις πιο βασικές) στις οποίες ο χρήστης είτε από λάθος είτε επειδή είναι κακόβουλος θα δώσει σαν είσοδο κάτι το οποίο δεν είναι σωστό και θα προκαλέσει πρόβλημα. Το παραπάνω παράδειγμα είναι ένα από τα προβλήματα που μπορούν να δημιουργηθούν σε ένα πρόγραμμα. Ο προγραμματιστής καλείται να το αντιμετωπίσει προκειμένου **να μην σταματήσει η εκτέλεση του προγράμματος**.
  
-Στο παραπάνω παράδειγμα εάν ο χρήστης δώσει την τιμή 0, το σύστημα θα δημιουργήσει ένα αντικείμενο που θα περιγράφει το είδος του λάθους που συνέβη. Ο προγραμματιστής καλείται να κάνει τα εξής+Στο παραπάνω παράδειγμα , το σύστημα θα παράξει ένα αντικείμενο που θα περιγράφει το είδος του λάθους που συνέβη. Ο προγραμματιστής πρέπει: 
-  - να λάβει το νέο αντικείμενο +  - να λάβει το αντικείμενο 
-  - να διαπιστώχσει το είδος του λάθος που έχει προκύψει +  - να εξετάσει το λάθος που έχει προκύψει 
-  - να αντιμετωπίσει το λάθος, ώστε το πρόγραμμά να επιστρέψει σε ένα σημείο από όπου μπορεί να συνεχίσει τη λειτουργία του κανονικά.+  - να αντιμετωπίσει το λάθος, ώστε το πρόγραμμά να επιστρέψει σε ένα σημείο από όπου μπορεί να συνεχίσει τη λειτουργία του χωρίς πρόβλημα.
  
 |Προηγούμενο: [[:java:nested_classes| Εμφωλευμένες κλάσεις ]] | [[ :toc | Περιεχόμενα ]]| Επόμενο: [[:java:exceptions_try_catch_block | Διαχείριση Εξαιρέσεων]]| |Προηγούμενο: [[:java:nested_classes| Εμφωλευμένες κλάσεις ]] | [[ :toc | Περιεχόμενα ]]| Επόμενο: [[:java:exceptions_try_catch_block | Διαχείριση Εξαιρέσεων]]|
  
java/exceptions_intro.txt · Last modified: 2021/03/23 07:23 by gthanos