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/16 15:19]
gthanos
java:exceptions_intro [2018/03/12 07:50]
gthanos
Line 1: Line 1:
 +====== Εξαιρέσεις (Exceptions) ======
 +
 +Σε αυτή την ενότητα θα αναφερθούμε σε αντικείμενα τα οποία δημιουργούνται κατά την ροή εκτέλεσης ενός προγράμματος, όταν συμβαίνει κάτι αναπάντεχο ή μη διαχειρίσιμο από το πρόγραμμα. Σε αυτές της περιπτώσεις παράγεται ένα νέο αντικείμενο που ονομάζεται "εξαίρεση" (//exception//), με παράλληλη διακοπή της κανονικής ροής του προγράμματος. Ο προγραμματιστής καλείται να διαχειριστεί μέσα από επιπλέον κώδικα τις πιθανές εξαιρέσεις, και κατ' επέκταση να διαχειριστεί ομαλά τα γεγονότα από τα οποία προέρχονται.
 +
 +Για να διασφαλίσουμε ότι το πρόγραμμά μας θα συνεχίσει την εκτέλεσή του ακόμη και αν συμβεί ένα απροσδόκητο γεγονός, χρησιμοποιούμε τον μηχανισμό διαχείρισης των **εξαιρέσεων (exceptions)**. 
 +
 +
 ====== Αντικείμενο της εξαίρεσης (exception object) ====== ====== Αντικείμενο της εξαίρεσης (exception object) ======
  
Line 11: 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 33: Line 41:
 Όπως καταλαβαίνουμε, θα πρέπει να προβλέψουμε όλες τις περιπτώσεις (ή τουλάχιστον τις πιο βασικές) στις οποίες ο χρήστης είτε από λάθος είτε επειδή είναι κακόβουλος θα δώσει σαν είσοδο κάτι το οποίο δεν είναι σωστό και θα προκαλέσει πρόβλημα. Το παραπάνω παράδειγμα είναι ένα από τα προβλήματα που μπορούν να δημιουργηθούν σε ένα πρόγραμμα. Ο προγραμματιστής καλείται να το αντιμετωπίσει προκειμένου **να μην σταματήσει η εκτέλεση του προγράμματος**. Όπως καταλαβαίνουμε, θα πρέπει να προβλέψουμε όλες τις περιπτώσεις (ή τουλάχιστον τις πιο βασικές) στις οποίες ο χρήστης είτε από λάθος είτε επειδή είναι κακόβουλος θα δώσει σαν είσοδο κάτι το οποίο δεν είναι σωστό και θα προκαλέσει πρόβλημα. Το παραπάνω παράδειγμα είναι ένα από τα προβλήματα που μπορούν να δημιουργηθούν σε ένα πρόγραμμα. Ο προγραμματιστής καλείται να το αντιμετωπίσει προκειμένου **να μην σταματήσει η εκτέλεση του προγράμματος**.
  
-Στο παραπάνω παράδειγμα συνεπώς, το σύστημα θα παράξει ένα αντικείμενο που θα περιγράφει το είδος του λάθους που συνέβη. Ο προγραμματιστής πρέπει:+Στο παραπάνω παράδειγμα , το σύστημα θα παράξει ένα αντικείμενο που θα περιγράφει το είδος του λάθους που συνέβη. Ο προγραμματιστής πρέπει:
   - να λάβει το αντικείμενο   - να λάβει το αντικείμενο
   - να εξετάσει το λάθος που έχει προκύψει   - να εξετάσει το λάθος που έχει προκύψει
java/exceptions_intro.txt · Last modified: 2021/03/23 07:23 by gthanos