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 [2015/02/27 20:45]
ckonstantas
java:exceptions_intro [2015/02/27 20:59]
ckonstantas
Line 52: Line 52:
 <code java> <code java>
 try{ try{
 +   code with some exception
 +}catch (ExceptionType name) {
  
 }catch (ExceptionType name) { }catch (ExceptionType name) {
  
-catch (ExceptionType name) {+} 
 +</​code>​
  
 +Εντός του try block βάζουμε τον κώδικα που μπορεί να προκύψει μια εξαίρεση. Στο catch block (το οποίο παρατηρούμε οτι μπορεί να είναι πάνω απο ένα) βάζουμε τον κώδικα που θέλουμε να εκτελεστεί όταν θα προκύψει η κάθε εξαίρεση της οποίας ο τύπος περιγράφεται στα ορίσματα του catch block. ​ Όπως τονίσαμε μπορούμε να έχουμε πάνω απο ένα catch block. ​
 +
 +Ο τρόπος με τον οποίον λειτουργεί είναι ο εξής. Όταν προκύψει ένα αντικείμενο εξαίρεσης,​ θα εκτελέσει το πρώτο μπλοκ το οποίο ταιριάζει με τον τύπο που περιγράφεται στα ορίσματα (στην προκειμένη περίπτωση ExceptionType). Συνεπώς θα συγκρίνει τον τύπο της εξαίρεσης που προέκυψε με όλους τους τύπους ,με τη σειρά έναν προς έναν, που υπάρχουν σαν παράμετροι στα catch blocks, μέχρι να βρεί κάποιο ταίριασμα και να πραγματοποιήσει τον κώδικα που είναι μέσα στο block.
 +
 +Ας δούμε ένα μικρό τμήμα κώδικα που εντοπίζει ένα είδος εξαίρεσης.
 +
 +<code java>
 +try {
 +
 +} catch (IndexOutOfBoundsException e) {
 +    System.err.println("​IndexOutOfBoundsException:​ " + e.getMessage());​
 +} catch (IOException e) {
 +    System.err.println("​Caught IOException:​ " + e.getMessage());​
 } }
-<​code>​+ 
 +</code> 
 + 
 +Μπορούμε να καταλάβουμε ποιο είναι το πρώτο είδος εξαίρεσης που θα εντοπίσει;​ Είναι η εξαίρεση που προκύπτει όταν βγαίνουμε εκτός ορίων του πίνακα! Παρατηρούμε όμως οτι υπάρχει και ένα επιπλέον block που καλύπτει και τις εξαιρέσεις που μπορούν να προκύψουν απο την είσοδο ή την έξοδο στοιχείων (παράδειγμα:​ προσπαθούμε να ανοίξουμε ένα αρχείο που δεν υπάρχει). 
 + 
 +Στο παραπάνω παράδειγμα το μόνο που κάνουμε είναι να εκτυπώσουμε ένα μήνυμα οτι προέκυψε μια εξαίρεση. Προφανώς,​ μπορούμε και πρέπει να βάλουμε κώδικα που κάνει κάτι πιο σημαντικό απο αυτό. 
  
    
java/exceptions_intro.txt · Last modified: 2019/04/20 05:02 by gthanos