Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας"

Transcript

1 Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1

2 ιαχείριση Εξαιρέσεων Exception Handling 2

3 Εισαγωγή στη ιαχείριση Εξαιρέσεων Συνήθως το καλύτερο αποτέλεσµαλαµβάνεται όταν τίποτε ασυνήθιστο δεν συµβαίνει Όµως, πρέπει να είµαστε προετοιµασµένοι για την περίπτωση που συµβούν κατ εξαίρεση συµβάντα Οι µηχανισµοί διαχείρισης εξαιρέσεων στη Java χρησιµοποιούνται όταν η ενεργοποίηση µιας µεθόδου προκαλεί κάτι να συµβεί κατ εξαίρεση 3

4 Εισαγωγή στη ιαχείριση Εξαιρέσεων Το λογισµικό των βιβλιοθηκών της Java (ή ο κώδικας που αναπτύσσεται από τους προγραµµατιστές) παρέχει ένα µηχανισµό πουσηµατοδοτεί όταν συµβεί κάτι ασυνήθιστο Αυτό αποκαλείται πέταγµαεξαίρεσης (throwing an exception) Σε κάποιο άλλο µέρος του προγράµµατος, ο προγραµµατιστής πρέπει να παρέχει τον κώδικα ο οποίος θα διαχειριστεί την εξαίρεση Αυτό αποκαλείται διαχείριση εξαίρεσης (handling the exception) 4

5 Ο µηχανισµός try-throw-catch Ο βασικός τρόπος διαχείρισης εξαιρέσεων στην Java αποτελείται από την τριάδα try-throw-catch Το µπλοκ try περιέχει τον κώδικα για τον βασικό αλγόριθµο Μαςλεειτιπρέπειναγίνει, όταν όλα βαίνουν οµαλά Αποκαλείται µπλοκ try επειδή δοκιµάζει "tries" να εκτελέσει την περίπτωση όπου όλα βαίνουν όπως έχουν σχεδιαστεί Μπορεί επίσης να περιέχει κώδικα που πετάει µια εξαίρεση εάν συµβεί κάτι ασυνήθιστο try { CodeThatMayThrowAnException } 5

6 Ο µηχανισµός try-throw-catch throw new ExceptionClassName(PossiblySomeArguments); Όταν πετάγεται µια εξαίρεση, η εκτέλεση του περιβάλλοντος try µπλοκ τερµατίζεται Κανονικά, η ροή του ελέγχου µεταφέρεται σε κάποιο άλλο σηµείο του κώδικα, που αναφέρεται ως µπλοκ catch Ητιµή που πετάγεται είναι το όρισµα στον τελεστή throw, και πάντα είναι ένα αντικείµενο κάποιας κλάσης εξαιρέσεων (exception class) Η εκτέλεση µιας δήλωσης throw αποκαλείται πέταγµα µιας εξαίρεσης (throwing an exception) 6

7 Ο µηχανισµός try-throw-catch Μια δήλωση throw είναι παρόµοια µετην κλήση µιας µεθόδου: throw new ExceptionClassName(SomeString); Στο παραπάνω παράδειγµα, το αντικείµενο της κλάσης ExceptionClassName δηµιουργείται χρησιµοποιώντας ένα string ως όρισµά του Αυτό το αντικείµενο, το οποίο είναι ένα όρισµα στον τελεστή throw, είναι το αντικείµενο εξαίρεσης που πετάγεται Αντί για την κλήση µιας µεθόδου, µια δήλωση throw καλεί ένα µπλοκ catch 7

8 Ο µηχανισµός try-throw-catch Όταν πετάγεται µια εξαίρεση, το µπλοκ catch αρχίζει την εκτέλεσή του Το µπλοκ catch έχει µια παράµετρο Το αντικείµενο εξαίρεσης που πετάγεται ενσωµατώνεται ως παράµετρος του µπλοκ catch Η εκτέλεση του µπλοκ catch αποκαλείται πιάσιµο µιας εξαίρεσης (catching the exception), ή διαχείριση της εξαίρεσης (handling the exception) Οποτεδήποτε πετάγεται µια εξαίρεση, θα πρέπει πάντα να πιάνεται από κάποιο µπλοκ catch 8

9 Ο µηχανισµός try-throw-catch catch(exception e) { ExceptionHandlingCode } Ένα µπλοκ catch µοιάζει σαν τον ορισµό µιας µεθόδου που έχει µια παράµετρο τύπου Exception Όµως δεν πρόκειται για ορισµό µεθόδου Ένα µπλοκ catch είναι ξεχωριστό κοµµάτι κώδικα που εκτελείται όταν ένα πρόγραµµα συναντήσει και εκτελέσει µια δήλωση throw στο προηγούµενο µπλοκ try Ένα µπλοκ catch συχνά αναφέρεται ως διαχειριστής εξαίρεσης (exception handler) Μπορεί να έχει το πολύ µια παράµετρο 9

10 Ο µηχανισµός try-throw-catch catch(exception e) {... } Ο προσδιοριστής e στο παραπάνω µπλοκ catch αποκαλείται παράµετρος του µπλοκ catch (catch block parameter) Ηπαράµετρος του µπλοκ catch κάνει δυο πράγµατα: 1. Καθορίζει τον τύπο που αντικειµένου εξαίρεσης που µπορεί να πιαστεί στο µπλοκ catch (π.χ., ένα αντικείµενο της κλάσης Exception στο παραπάνω παράδειγµα) 2. Παρέχει ένα όνοµα (για το αντικείµενο που πιάνεται) πάνω στο οποίο µπορεί να επενεργήσει το µπλοκ catch Σηµείωση: συχνά χρησιµοποιείται ο προσδιοριστής e από σύµβαση, αλλά µπορεί να χρησιµοποιηθεί οποιοσδήποτε non-keyword προσδιοριστής 10

11 Ο µηχανισµός try-throw-catch Όταν εκτελείται ένα µπλοκ try, δυο πράγµατα µπορεί να συµβούν: 1. εν πετάγεται εξαίρεση στο µπλοκ try Εκτελείται όλος ο κώδικας στο µπλοκ try Το µπλοκ catch παραλείπεται Η εκτέλεση συνεχίζεται µε τον κώδικα που βρίσκεται µετά το µπλοκ catch 11

12 Ο µηχανισµός try-throw-catch 2. Μια εξαίρεση πετάγεται στο µπλοκ try και πιάνεται στο µπλοκ catch Το υπόλοιπο του κώδικα στο µπλοκ try παραλείπεται Ο έλεγχος µεταφέρεται σε ένα µπλοκ catch που ακολουθεί (στην απλούστερη περίπτωση) Το αντικείµενο που πετάγεται ενσωµατώνεται ως παράµετρος στο µπλοκ catch Εκτελείται ο κώδικας στο µπλοκ catch Εκτελείται ο κώδικας που έπεται του µπλοκ catch (εάν υπάρχει) 12

13 Κλάσεις Εξαιρέσεων (Exception Classes) Υπάρχουν κι άλλες κλάσεις εξαιρέσεων εκτός από την κλάση Exception Μπορούν να οριστούν νέες κλάσεις εξαιρέσεων όπως κάθε άλλη κλάση Όλες οι προκαθορισµένες κλάσεις εξαιρέσεων έχουν τις ακόλουθες ιδιότητες: Υπάρχει ένας constructor που δέχεται ένα µόνο όρισµα τύπου String Η κλάση έχει µια µέθοδο accessor, την getmessage, ηοποίαµπορεί να επιστρέψει το προαναφερθέν string Όλες οι κλάσεις εξαιρέσεων που ορίζονται από τον προγραµµατιστή πρέπει να έχουν τις ίδιες ιδιότητες 13

14 Κλάσεις Εξαιρέσεων από standard Packages ιάφορες προκαθορισµένες κλάσεις εξαιρέσεων περιλαµβάνονται στα packages που έρχονται µε τη Java Για παράδειγµα: IOException NoSuchMethodException FileNotFoundException Πολλές κλάσεις εξαιρέσεων πρέπει να γίνουν imported, πριν µπορέσουν να χρησιµοποιηθούν import java.io.ioexception; 14

15 Κλάσεις Εξαιρέσεων από standard Packages Η προκαθορισµένη κλάση εξαίρεσης Exception είναι η ριζική κλάση (root class) για όλες τις εξαιρέσεις Κάθε κλάση εξαίρεσης είναι απόγονος της κλάσης Exception Παρόλο που η κλάση Exception µπορεί να χρησιµοποιηθεί αµέσως σε µια κλάση ή σε ένα πρόγραµµα, συνήθως χρησιµοποιείται για να ορίσουµε µια παραγόµενη κλάση ΗκλάσηException βρίσκεται στο package java.lang, και συνεπώς δεν απαιτείται δήλωση import γιαναγίνειδιαθέσιµη 15

16 Χρήση της µεθόδου getmessage... // method code try {... throw new Exception(StringArgument);... } catch(exception e) { String message = e.getmessage(); System.out.println(message); System.exit(0); }... 16

17 Χρήση της µεθόδου getmessage Κάθε εξαίρεση έχει µια instance variable τύπου String που περιέχει κάποιο µήνυµα Αυτό το string τυπικά προσδιορίζει το λόγο για την εξαίρεση Στο προηγούµενο παράδειγµα, το StringArgument είναι όρισµαστον constructor Exception Αυτό είναι το string που χρησιµοποιείται για την τιµήτηςstring instance variable της εξαίρεσης e Εποµένως, ηκλήσηµεθόδου e.getmessage() επιστρέφει αυτό το string 17

18 Ορισµός κλάσεων εξαιρέσεων Μια δήλωση throw µπορεί να πετάξει ένα αντικείµενο εξαίρεσης οποιασδήποτε κλάσης εξαίρεσης Αντί για τη χρήση προκαθορισµένων κλάσεων, ο προγραµµατιστής µπορεί να ορίσει τις δικές του κλάσεις εξαιρέσεων Αυτές µπορεί να προσαρµοστούν για να µεταφέρουν το ακριβές είδος πληροφορίας που απαιτείται από το µπλοκ catch Ένας διαφορετικός τύπος εξαίρεσης µπορεί να οριστεί για να αναγνωρίζει κάθε διαφορετική κατάσταση εξαίρεσης 18

19 Ορισµός κλάσεων εξαιρέσεων Κάθε κλάση εξαίρεσης που ορίζεται πρέπει να είναι απόγονος µιας ήδη υπάρχουσας κλάσης εξαίρεσης Μπορεί να είναι µια παραγόµενο κλάση των κλάσεων εξαιρέσεων που υπάρχουν στις βιβλιοθήκες της Java, ή µιας εκ των κλάσεων εξαιρέσεων που ορίστηκαν από τον προγραµµατιστή Οι constructors είναι τα πιο σηµαντικά µέλη στον ορισµό µιας κλάσης εξαίρεσης Πρέπει να συµπεριφέρονται ανάλογα σε σχέση µετις µεταβλητές και µεθόδους που κληρονοµούνται από τη βασική κλάση Συχνά, δεν υπάρχουν άλλα µέλη, εκτός από εκείνα που κληρονοµούνται από τη βασική κλάση Η επόµενη κλάση εξαίρεσης The following exception class performs these basic tasks only 19

20 Προγραµµατιστικά ορισµένη κλάση εξαίρεσης 20

21 Υπόδειξη: Μια κλάση εξαίρεσης µπορεί να µεταφέρει ένα µήνυµα οποιουδήποτε τύπου Μπορεί να οριστεί ένας constructor µιας κλάσης εξαίρεσης, ο οποίος να δέχεται ως όρισµα άλλου τύπου, εκτός String Θα αποθήκευε την τιµήσεµια instance variable Θα έπρεπε να οριστούν µέθοδοι accessor για αυτήν την instance variable 21

22 Μια κλάση εξαίρεσης µε µήνυµα τύπουint 22

23 Χαρακτηριστικά Αντικειµένου Εξαίρεσης Τα δυο σηµαντικότερα χαρακτηριστικά ενός αντικειµένου εξαίρεσης είναι ο τύπος του (δηλ., η κλάση εξαίρεσης) και το µήνυµαπουµεταφέρει Το µήνυµα στέλνεται µε τοαντικείµενο εξαίρεσης ως instance variable Αυτό το µήνυµα µπορεί να ανακτηθεί µε τηνµέθοδο accessor getmessage, έτσι ώστε το µπλοκ catch να µπορεί να αξιοποιήσει το µήνυµα 23

24 Οδηγίες για κλάσεις εξαιρέσεων ορισµένων από τον προγραµµατιστή Οι κλάσεις εξαιρέσεων µπορεί να είναι ορισµένες από τον προγραµµατιστή, αλλά κάθε τέτοια κλάση πρέπει να είναι παραγόµενη µιας ήδη υπάρχουσας κλάσης εξαίρεσης ΗκλάσηException µπορεί να χρησιµοποιηθεί ως βασική κλάση, εκτός και είναι πιο κατάλληλη κάποια άλλη κλάση εξαίρεσης Πρέπει να ορίζονται τουλάχιστον δυο constructors, µερικές φορές περισσότεροι Η κλάση εξαίρεσης θα πρέπει να επιτρέπει το γεγονός ότι η µέθοδος getmessage κληρονοµείται 24

25 ιατηρήστε την getmessage Για όλες τις προκαθορισµένες κλάσεις εξαιρέσεων, η µέθοδος getmessage επιστρέφει το string το οποίο περάστηκε ως όρισµαστονconstructor Ή θα επιστρέψει ένα εξ ορισµού string εάν δεν χρησιµοποιήθηκε όρισµα µε τονconstructor Αυτή η συµπεριφορά πρέπει να διατηρείται σε όλες τις κλάσεις εξαιρέσεων που ορίζονται από τον προγραµµατιστή Πρέπει να περιλαµβάνεται ένας constructor µε όρισµα τύπου string, του οποίου το σώµα ναξεκινάµε κλήση στον super Η κλήση στον super πρέπει να χρησιµοποιεί την παράµετρο ως όρισµα Ένα no-argument constructor πρέπει επίσης να περιλαµβάνεται, που να ξεκινά µε κλήση στον super Αυτή η κλήση στον super πρέπει να χρησιµοποιεί ένα εξ ορισµού string ως όρισµα 25

26 Πολλαπλά µπλοκ catch Ένα µπλοκ try δύναται να πετάξει οποιοδήποτε αριθµό εξαιρέσεων, ακόµα και διαφορετικών τύπων Σε µια οποιαδήποτε τέτοια εκτέλεση του try, το πολύ µια µόνο εξαίρεση µπορεί να πεταχτεί (αφού µια δήλωση throw τερµατίζει την εκτέλεση του try) Όµως, διαφορετικοί τύποι τιµών εξαιρέσεων µπορεί να πεταχτούν από το try 26

27 Πολλαπλά µπλοκ catch Κάθε µπλοκ catch µπορείναπιάσειτιµές τέτοιου τύπου κλάσης εξαίρεσης, ώστε να συµφωνούν µετηνκεφαλίδατουµπλοκ catch ιαφορετικοί τύποι εξαιρέσεων µπορεί να πιαστούν, τοποθετώντας περισσότερα από ένα µπλοκ catch µετά το µπλοκ try Μπορούµε να περιλάβουµε οποιοδήποτε αριθµό από catch, αλλά πρέπει να τοποθετηθούν στη σωστή σειρά 27

28 Παγίδα : Πρώταναχειρίζεστετηνπιο ειδική εξαίρεση Όταν πιάνονται πολλαπλές εξαιρέσεις, η σειρά των δηλώσεων catch είναι σηµαντική Όταν µια εξαίρεση πετάγεται από εάν µπλοκ try, τα catch µπλοκ εξετάζονται µε τη σειρά Το πρώτο που ταιριάζει µε τον τύπο της εξαίρεσης που πετάχτηκε, είναι αυτό που εκτελείται 28

29 Παγίδα : Πρώταναχειρίζεστετηνπιο ειδική εξαίρεση catch (Exception e) {... } catch (NegativeNumberException e) {... } Επειδή µια NegativeNumberException είναι τύπου Exception, όλες οι NegativeNumberExceptions θα πιαστούν από το πρώτο µπλοκ catch, πριν φτάσουµε στοδεύτερο Το µπλοκ catch για τις NegativeNumberException δεν θα χρησιµοποιηθεί ποτέ! Για τη σωστή διάταξη, απλά αντιστρέψτε τα δυο µπλοκ catch 29

30 Πετώντας µια εξαίρεση µέσα σε µια µέθοδο Μερικές φορές είναι λογικό να πετάµε µια εξαίρεση µέσα σε µια µέθοδο, αλλά να µην τη χειριζόµαστε µέσα στην ίδια µέθοδο Μερικά προγράµµατα που θα χρησιµοποιούσαν τη µέθοδο θα έπρεπε να τερµατίζονται εάν πεταγόταν η εξαίρεση, και µερικά άλλα θα έκαναν κάτι άλλο Σε τέτοιες περιπτώσεις, το πρόγραµµα πουχρησιµοποιεί τη µέθοδο θα πρέπει να περικλείει την ενεργοποίηση της µεθόδου σε µπλοκ try, καιναπιάνειτηνεξαίρεσησεέναµπλοκ catch που έπεται Στην περίπτωση αυτή, η µέθοδος που πετάει την εξαίρεση δεν περιλαµβάνει ούτε µπλοκ try ούτε µπλοκ catch Όµως, θα έπρεπε να περιλαµβάνει µια πρόταση throws 30

31 ήλωση εξαιρέσεων µε τηνπρόταση throws Εάν µια µέθοδος µπορεί να πετάξει µια εξαίρεση, αλλά δεν τη χειρίζεται, πρέπει να παρέχει µια προειδοποίηση Αυτή η προειδοποίηση αποκαλείται πρόταση throws Η διαδικασία συµπερίληψης µιας κλάσης εξαίρεσης σε µια πρόταση clause αποκαλείται δήλωση της εξαίρεσης (declaring the exception) throws AnException //throws clause Το επόµενο δηλώνει ότι µια ενεργοποίηση της µεθόδου amethod θα µπορούσε να πετάξει µια εξαίρεση AnException public void amethod() throws AnException 31

32 ήλωση εξαιρέσεων µε τηνπρόταση throws Εάν µια µέθοδος µπορεί να πετάξει περισσότερους από ένα τύπους εξαιρέσεων, τότε διαχωρίζουµετουςτύπουςεξαιρέσεωνµε κόµµα public void amethod() throws AnException, AnotherException Εάν µια µέθοδος πετάει µια εξαίρεση, αλλά δεν τη χειρίζεται η ίδια, τότε η ενεργοποίηση της µεθόδου τερµατίζεται άµεσα 32

33 Ο κανόνας Catch ή Declare Οι περισσότερες κανονικές εξαιρέσεις που µπορεί να πεταχτούν σε µια µέθοδο, πρέπει να διαχειρίζονται µε ένα από τους δυο τρόπους: 1. Ο κώδικας που µπορεί να πετάξει την εξαίρεση τοποθετείται µέσα σε ένα try, και η πιθανή εξαίρεση πιάνεται µέσα σε ένα catch µέσα στην ίδια µέθοδο 2. Η πιθανή εξαίρεση µπορεί να δηλωθεί στην αρχή του ορισµού της µεθόδου, τοποθετώντας το όνοµα της κλάσης εξαίρεσης σε µια πρόταση throws 33

34 Ο κανόνας Catch ή Declare Η πρώτη τεχνική χειρίζεται µια εξαίρεση µέσα σε ένα µπλοκ catch Η δεύτερη τεχνική είναι ένας τρόπος να µεταθέσουµε την ευθύνη χειρισµού της εξαίρεσης στη µέθοδο που ενεργοποίησε την µέθοδο που πέταξε την εξαίρεση Ηπρώτηµέθοδος πρέπει να χειριστεί την εξαίρεση, εκτός και εάν χρησιµοποιεί την ίδια τεχνική µετάθεσης της ευθύνης χειρισµού της εξαίρεσης Τελικά, κάθε εξαίρεση που πετάγεται θα πιαστεί από ένα µπλοκ catch σε µια µέθοδο που δεν δηλώνει την κλάση εξαίρεσης σε µια πρόταση throws 34

35 Ο Κανόνας Catch ή Declare Σε κάθε µέθοδο, και οι δυο τεχνικές µπορούν να αναµειχθούν Μερικές εξαιρέσεις µπορεί να πιαστούν, και άλλες να δηλωθούν στην πρόταση throws Όµως, αυτές οι τεχνικές πρέπει να χρησιµοποιούνται µε συνέπεια µε µια εξαίρεση Εάν µια εξαίρεση δεν δηλώνεται σε µια µέθοδο, πρέπει να την χειρίζεται η ίδια η µέθοδος Εάν µια εξαίρεση δηλώνεται, τότε η ευθύνη χειρισµού της µετατίθεται στην καλούσα µέθοδο Σηµειώστε ότι εάν ο ορισµός µιας µεθόδου περιλαµβάνει µια ενεργοποίηση µιας δεύτερης µεθόδου, και η δεύτερη µέθοδος µπορεί να πετάξει µια εξαίρεση αλλά δεν την πιάνει, τότε η πρώτη µέθοδος πρέπει να τη χειριστεί ή να τη δηλώσει 35

36 Checked και Unchecked εξαιρέσεις Οι εξαιρέσεις που υπόκεινται σε κανόνες catch ή σε κανόνες declare αποκαλούνται checked exceptions Ο compiler ελέγχει εάν τις διαχειριζόµαστε µε µπλοκ catch block ή µε µια πρόταση throws Οι κλάσεις Throwable, Exception, και όλοι οι απόγονοι της κλάσης Exception είναι όλες checked exceptions Όλες οι άλλες εξαιρέσεις είναι unchecked exceptions ΗκλάσηError καιόλεςοικλάσειςαπόγονοίτης αποκαλούνται error classes Οι error classes δεν υπόκεινται στον Κανόνα Catch ή Declare 36

37 Εξαιρέσεις στον Κανόνα Catch ή Declare Οι checked exceptions πρέπει να ακολουθούν τον Κανόνα Catch ή Declare Τα προγράµµατασταοποίααυτέςοιεξαιρέσεις µπορεί να πεταχτούν δεν θα µεταγλωττιστούν, παρά µόνο εάν τις χειριστούµε µε τον Κανόνα Οι unchecked exceptions δεν χρειάζεται να συµµορφώνονται µε τον Κανόνα Catch ή Declare 37

38 Ιεραρχία των αντικειµένων Throwable 38

39 Ηπρότασηthrows σε παραγόµενες κλάσεις Όταν µια µέθοδος γίνεται override σε µια παραγόµενη κλάση, θα πρέπει να έχει τις ίδιες κλάσεις εξαιρέσεων που παραθέτονται στην πρόταση throws της ίδιας µεθόδου έτσι όπως είναι ορισµένη στη βασική κλάση Ή θα πρέπει να έχει ένα υποσύνολο αυτών Μια παραγόµενη κλάση δεν µπορεί να προσθέσει εξαιρέσεις στην πρόταση throws Αλλά µπορεί να διαγράψει µερικές 39

40 Τι θα συµβεί εάν δεν χειριστούµε µια εξαίρεση? Εάν κάθε µέθοδος (έως την main και συµπεριλαµβανοµένης της main) απλά περιλαµβάνει µια πρόταση throws για µια εξαίρεση, αυτή η µπορεί να πεταχτεί, αλλά να µην τη χειριστεί καµία µέθοδος Σε ένα πρόγραµµα GUI (δηλ., µε παραθυρικό περιβάλλον), τίποτε δεν συµβαίνει αλλά ο χρήστης µπορεί να µην αντιλαµβάνεται τι έγινε και το πρόγραµµα ναµην είναι πλέον αξιόπιστο Σε non-gui προγράµµατα, αυτή η κατάσταση προκαλεί τον τερµατισµό τουπρογράµµατος µεέναµήνυµα λάθους δίνοντας το όνοµα της κλάσης εξαίρεσης Κάθε ορθά γραµµένο πρόγραµµα θα πρέπει τελικά να χειρίζεται κάθε εξαίρεση µε έναµπλοκ catch σε κάποια µέθοδο 40

41 Πότε να χρησιµοποιούµε εξαιρέσεις Οι εξαιρέσεις θα πρέπει να χρησιµοποιούνται σε καταστάσεις όπου µια µέθοδος συναντά µια ασυνήθιστη ή µη αναµενόµενη περίπτωση την οποία δεν µπορεί να χειριστεί εύκολα µε κάποιον τρόπο Όταν πρέπει να χρησιµοποιηθεί η διαχείριση εξαιρέσεων, µερικές οδηγίες: Περιλάβετε δηλώσεις throw και παραθέστε τις κλάσεις εξαιρέσεων σε µια πρόταση throws στον ορισµό µιας µεθόδου Τοποθετήστε τα try και catch µπλοκ σε διαφορετική µέθοδο 41

42 Πότε να χρησιµοποιούµε εξαιρέσεις Ένα παράδειγµα µιας µεθόδου όπου παράγεται µια εξαίρεση: public void somemethod() throws SomeException {... throw new SomeException(SomeArgument);... } 42

43 Πότε να χρησιµοποιούµε εξαιρέσεις Όταν η somemethod χρησιµοποιείται από την othermethod, η othermethod πρέπει να χειριστεί την εξαίρεση: public void othermethod() { try { somemethod();... } catch (SomeException e) { CodeToHandleException }... } 43

44 Παγίδα : Φωλιασµένα µπλοκ try-catch Είναι δυνατό να τοποθετήσουµε έναtry και τα ακόλουθά του catch µπλοκ µέσα σε ένα µεγαλύτερο try, ή µέσα σε ένα µεγαλύτερο catch µπλοκ Εάν ένα σύνολο try-catch µπλοκ τοποθετηθούν µέσα σε ένα µεγαλύτερο catch, διαφορετικά ονόµατα πρέπει να χρησιµοποιηθούν για τις παραµέτρους του catch µπλοκ σε εσωτερικό και εξωτερικό µπλοκ Εάν ένα σύνολο try-catch τοποθετηθούν µέσα σε ένα µεγαλύτερο try, και µια εξαίρεση πεταχτεί από το εσωτερικό try η οποία δεν πιαστεί, τότε η εξαίρεση πετάγεται στο εξωτερικό try για επεξεργασία, και µπορεί να πιαστεί σε ένα από τα catch µπλοκ του 44

45 Το µπλοκ finally Το µπλοκ finally περιέχει κώδικα για να εκτελεστεί, είτε πεταχτεί µια εξαίρεση είτε δεν πεταχτεί από το try µπλοκ Εάν χρησιµοποιηθεί, το µπλοκ finally τοποθετείται µετά το µπλοκ try και τα συνακόλουθα µπλοκ catch try {... } catch(exceptionclass1 e) {... }... catch(exceptionclassn e) {... } finally { CodeToBeExecutedInAllCases } 45

46 Το µπλοκ finally Εάν το try-catch-finally είναι µέσα στον ορισµό µιας µεθόδου, υπάρχουν τρεις πιθανότητες όταν εκτελεστεί ο κώδικας: 1. Το µπλοκ try εκτελείται ολόκληρο, δεν πετάγεται καµία εξαίρεση, και εκτελείται επίσης και το µπλοκ finally 2. Πετάγεται µια εξαίρεση στο µπλοκ try, πιάνεται σε ένα από τα µπλοκ catch, και εκτελείται επίσης το µπλοκ finally 3. Πετάγεται µια εξαίρεση στο µπλοκ try, δεν υπάρχει µπλοκ catch που να ταιριάζει µέσα στη µέθοδο, εκτελείται το µπλοκ finally, και τερµατίζεται η εκτέλεση της µεθόδου πετώντας το αντικείµενο εξαίρεσης στην καλούσα µέθοδο 46

47 Ξαναπετώντας µια εξαίρεση Ένα µπλοκ catch µπορεί να περιέχει κώδικα που πετάει µια εξαίρεση Μερικές φορές είναι χρήσιµο ναπιάνουµε µια εξαίρεση και κατόπιν, ανάλογα µε τοstring που παράχθηκε από την getmessage, να πετάµε την ίδια ή διαφορετική εξαίρεση για να τη χειριστεί κάποιος άλλος πιο ψηλά στην αλυσίδα διαχείρισης εξαιρέσεων 47

48 ΗκλάσηAssertionError Όταν ένα πρόγραµµα περιέχειέναµπλοκ assertion, καιαποτύχειηassertion, πετάγεται ένα αντικείµενο της κλάσης AssertionError Αυτό προκαλεί τον τερµατισµό του προγράµµατος µε ένα µήνυµα λάθους ΗκλάσηAssertionError παράγεται από την κλάση Error, και εποµένως είναι µια unchecked exception Γιανααποτρέψουµε τον τερµατισµό του προγράµµατος, θα µπορούσαµε να την χειριστούµε, αλλά αυτό δεν είναι απαιτούµενο 48

49 ιαχείριση εξαιρέσεων µε τηνκλάσηscanner Η µέθοδος nextint της κλάσης Scanner µπορεί να χρησιµοποιηθείγιαναδιαβάσουµε τιµές int από το πληκτρολόγιο Όµως, εάν ο χρήστης εισάγει κάτι διαφορετικό από µια ορθή τιµή int, θα πεταχτεί µια εξαίρεση InputMismatchException Εκτός και εάν χειριστούµε την εξαίρεση αυτή, το πρόγραµµα θατερµατιστεί µε έναµήνυµα λάθους Εάν πιάσουµε τηνεξαίρεση, το µπλοκ catch µπορεί να περιέχει κώδικα για µια εναλλακτική ενέργεια, όπως ερώτηση στο χρήστη να εισαγάγει ξανά τον αριθµό 49

50 ΗεξαίρεσηInputMismatchException ΗεξαίρεσηInputMismatchException βρίσκεται στο standard Java package java.util Ένα πρόγραµµα που αναφέρεται σε αυτή, θα πρέπει να περιλαµβάνει µια δήλωση import : import java.util.inputmismatchexception; Είναι κλάση απόγονος της κλάσης RuntimeException Εποµένως, είναι µια unchecked exception και δεν απαιτείται να τη χειριστούµε σεέναµπλοκ catch ή να τη δηλώσουµε σεµια πρόταση throws Όµως,επιτρέπεται ο χειρισµός της σε ένα µπλοκ catch, και µερικές φορές είναι χρήσιµος 50

51 Υπόδειξη : Βρόχοι ελεγχόµενοι από εξαίρεση Μερικές φορές είναι καλύτερο να απλοποιούµε τους βρόχους διαµέσου µιας ενέργειας ξανά, όταν πετάγεται µια εξαίρεση, όπως στο παρακάτω παράδειγµα: boolean done = false; while (! done) { try { CodeThatMayThrowAnException done = true; } catch (SomeExceptionClass e) { SomeMoreCode } } 51

52 Βρόχος ελεγχόµενος από εξαίρεση (1/3) 52

53 Βρόχος ελεγχόµενος από εξαίρεση (2/3) 53

54 Βρόχος ελεγχόµενος από εξαίρεση (3/3) 54

55 ArrayIndexOutOfBoundsException Μια εξαίρεση ArrayIndexOutOfBoundsException πετάγεται οποτεδήποτε το πρόγραµµα επιχειρεί να χρησιµοποιήσει έναν δείκτη σε πίνακα που βρίσκεται εκτός τωνορίωντουπίνακα Κανονικά, αυτό προκαλεί τερµατισµό τουπρογράµµατος Όπως όλοι οι απόγονοι της κλάσης RuntimeException, είναι µια unchecked exception εν υπάρχει απαίτηση να τη χειριστούµε Όταν πετάγεται αυτή η εξαίρεση, είναι µια ένδειξη ότι το πρόγραµµα περιέχει σφάλµα Αντί να επιχειρήσουµε να χειριστούµε την εξαίρεση, πρέπει να διορθώσουµε τοπρόγραµµα 55

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

Διαβάστε περισσότερα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται

Διαβάστε περισσότερα

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εξαιρέσεις. try, catch, finally, throw, throws

Εξαιρέσεις. try, catch, finally, throw, throws Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη

Διαβάστε περισσότερα

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions (Object Oriented Programming) Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος

Διαβάστε περισσότερα

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Εξαιρέσεις ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΕΞΑΙΡΕΣΕΙΣ

Διαβάστε περισσότερα

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 10 Exceptions handling (Χειρισμός εξαιρέσεων)

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 9η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cp

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Εξαιρέσεις στην Java EXCEPTIONS IN JAVA

Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Εξαιρέσεις στην Java EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει

Διαβάστε περισσότερα

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Χειρισμός Εξαιρέσεων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

Εξαιρέσεις στη Java. Περιεχόμενα. Κάποιες προκαθορισμένες ρ εξαιρέσεις. Κωστής Σαγώνας

Εξαιρέσεις στη Java. Περιεχόμενα. Κάποιες προκαθορισμένες ρ εξαιρέσεις. Κωστής Σαγώνας Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 3 Java Classes Java Objects

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 12η: 30/08/2006 1 Generics

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις Interfaces and Inner Classes. ιεπαφές - Interfaces

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις Interfaces and Inner Classes. ιεπαφές - Interfaces Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm

Διαβάστε περισσότερα

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

Διαβάστε περισσότερα

Χειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA

Χειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA Χειρισμός Εξαιρέσεων EXCEPTIONS IN JAVA Τι είναι μια εξαίρεση Έστω το κάτωθι τμήμα κώδικα: int age = Integer.parseInt(input); Προφανώς αναμένουμε έναν αριθμό (ακέραιο) από το χρήστη που αντιπροσωπεύει

Διαβάστε περισσότερα

Βασικά της γλώσσας JAVA

Βασικά της γλώσσας JAVA 17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 13η: 30/08/2006 1 Συνδεδεµένες

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

Διαβάστε περισσότερα

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #7 η : Εξαιρέσεις (λάθη εκτέλεσης, χειρισμός εξαιρέσεων λαθών,) Είσοδος / Έξοδος (ρεύματα, κλάσεις εισόδου και εξόδου, διαχείριση αρχείων) Γαβαλάς

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889

Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Generics και η κλάση ArrayList. Εισαγωγή στα Generics

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Generics και η κλάση ArrayList. Εισαγωγή στα Generics Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 12η: 30/08/2006 1 Generics

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 7: Εξαιρέσεις (Exceptions), Εντοπισμός Σφαλμάτων (Debugging) Δρ. Χαράλαμπος Ζ. Πατρικάκης

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 8 Πακέτα (Packages) Access

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 17η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Προσθήκη ελέγχου ορίων σε πίνακες χρησιμοποιώντας σχεδιότυπα τάξεων

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

java.lang Class Throwable

java.lang Class Throwable EΞΑΙΡΕΣΕΙΣ Η java παρέχει ένα µηχανισµό, τις Εξαιρέσεις (exceptions), για να βρει και να χειριστεί τα λάθη που προκύπτουν κατά τις εργασίες Ι/Ο. Τα σφάλµατα και οι εξαιρέσεις είναι αντικείµενα της κλάσης

Διαβάστε περισσότερα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας Εισαγωγή Εξαιρέσεις ηµήτρης Λεβεντέας 20 Μαΐου 2010 Εισαγωγή Ορισµός Τι είναι Ορισµός Ο χειρισµός εξαιρέσεων είναι µια κατασκευή η οποία µας επιτρέπει να χειριστούµε ειδικές συνθήκες που αλλάζουν την ϕυσιολογική

Διαβάστε περισσότερα

Κωστής Σαγώνας Πιάσιμο εξαιρέσεων (catching exceptions) Ρίψη εξαιρέσεων (throwing exceptions) Η πρόταση finally

Κωστής Σαγώνας Πιάσιμο εξαιρέσεων (catching exceptions) Ρίψη εξαιρέσεων (throwing exceptions) Η πρόταση finally Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]); int j = Integer.parseInt(args[1]); System.out.println(i/j); > javac

Διαβάστε περισσότερα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

Διαβάστε περισσότερα

8. Μέθοδοι (Methods)

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

Διαβάστε περισσότερα

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

Διαβάστε περισσότερα

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

14. Διαχείριση σφαλμάτων (Exception Handling)

14. Διαχείριση σφαλμάτων (Exception Handling) 14. Διαχείριση σφαλμάτων (Exception Handling) Χειμερινό Εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Εισαγωγή στη διαχείριση σφαλμάτων Παράδειγμα: ArithmeticExceptions

Διαβάστε περισσότερα

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD (Object Oriented Programming) Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Πακέτα (Packages) Φωλιασμένες

Διαβάστε περισσότερα

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Αρχεία String processing ΕΞΑΙΡΕΣΕΙΣ Εξαιρέσεις οι Εξαιρέσεις (Exceptions) είναι ένας μηχανισμός που έχει η Java για να αντιμετωπίζει περιπτώσεις

Διαβάστε περισσότερα

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός

Διαβάστε περισσότερα

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

Διαβάστε περισσότερα

ΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη

ΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη ΣΕΜΙΝΑΡΙΟ JAVA 5 η ιάλεξη ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓ/ΣΜΟΣ & ΣΦΑΛΜΑΤΑ Εnumerators Κληρονοµικότητα Exceptions try / catch / finally Interfaces ENUMERATORS ( ENUM ) Τα enum είναι ένα εργαλείο για να οριστεί

Διαβάστε περισσότερα

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα