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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

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

Λογιστικές Εφαρμογές Εργαστήριο

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προγραμματισμός Διαδικτύου

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

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

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

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

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

Διαδικαστικός Προγραμματισμός

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

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

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

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

Προγραμματισμός Διαδικτύου

Ψηφιακή Επεξεργασία Σήματος

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

Λειτουργικά Συστήματα

Αρχές Τηλεπικοινωνιών

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

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

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

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

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

Οικονομικά Μαθηματικά

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

7 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγή στον Προγραμματισμό με C++

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μέθοδοι Βελτιστοποίησης

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

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

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

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Υδραυλικά & Πνευματικά ΣΑΕ

Συστήματα Αυτομάτου Ελέγχου II

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Transcript:

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Ευχαριστίες Στην ανάπτυξη του υλικού βοήθησαν οι φοιτητές Λάζαρος Τουμανίδης, Λίλιαν Γούσιου και ο βοηθός εργαστηρίου Κόγιας Δημήτριος. 4

Βιβλιογραφία Harvey Deitel,Paul Deitel, «Java Προγραμματισμός, 8η έκδοση», Γκιούρδας, 2010. Γιώργος Λιακέας, «Εισαγωγή στη Java», Κλειδάριθμος, 2009. Χρήστος Κυτάγιας, Κώστας Δ. Κυτάγιας, Γιώργος Πρεζεράκος, Δημήτρης Κυτάγιας, «Αντικειμενοστραφής Προγραμματισμός με Java», Σύγχρονη Εκδοτική, 2013. Wanda Dann, Stephen Cooper, and Randy Pausch, «Learning to program with Alice» 3rd edition, Pearson Education, 2012. Michael Kölling, «Introduction to Programming with Greenfoot». «Object-Oriented Programming in Java with Games and Simulations», Pearson Education, August 2009. Οι σημειώσεις είναι βασισμένες και σε υλικό του καθηγητή του ΤΕΙ Πειραιά Γ. Πρεζεράκου. 5

Περιεχόμενα 7.1 Εξαιρέσεις (Exceptions) 7.2 Εντοπισμός Σφαλμάτων (Debugging) 6

Προσδοκώμενα Αποτελέσματα Στην ενότητα αυτή θα μάθετε για: Τις εξαιρέσεις και ως τις αντιμετωπίζουμε σε ένα πρόγραμμα, Βασικά βήματα για τον εντοπισμό και την αντιμετώπιση σφαλμάτων στο πρόγραμμα. 7

7.1 Εξαιρέσεις (Exceptions) 8

Παραδείγματα Εξαιρέσεων (Exceptions) NullPointerException ArrayIndexOutOfBoundsException ClassCastException RuntimeException 9

Τί Είναι μία Εξαίρεση; Γεγονός που συμβαίνει όταν γίνεται κάτι απροσδόκητο - null.somemethod(); - (new int[1])[1] = 0; - int i = string ; 10

Γιατί Χρησιμοποιούμε μία Εξαίρεση; Για να πει σε ένα κώδικα που χρησιμοποιεί τη μέθοδο μας ότι κάτι πάει στραβά. Exception in thread "main" java.lang.arrayindexoutofboundsexception: 5 at RuntimeException.main(RuntimeException.java:8) - Δείκτης πρόσβασης σε στοιχείο = 5, ο οποίος δείχνει έξω από τα όρια του πίνακα - Μέθοδος που το κάλεσε : main 11

Πως Δημιουργούνται «Εξαιρέσεις» Όταν η Java δεν γνωρίζει τι θα κάνει, επομένως: Δημιουργεί ένα αντικείμενο Εξαίρεσης, Συμπεριλαμβάνει χρήσιμες πληροφορίες για αυτήν. «πετάει» (throws) την Εξαίρεση. Μπορείτε να δημιουργήσετε και να «πετάξετε» εξαιρέσεις (throw). Επίσης να δηλώσετε ποιες εξαιρέσεις θα πετάξετε (throws). 12

Public class Εξαίρεση Η Εξαίρεση είναι μία κλάση Στο παρακάτω παράδειγμα μόλις κληρονομήσατε από αυτή! { public class MyException extends Exception } Ή μπορείτε να χρησιμοποιήσετε μία ήδη υπάρχουσα Εδώ θα βρείτε μία λίστα: http://rymden.nu/exceptions.html 13

Προειδοποιήστε τη Java Σχετικά με την Εξαίρεση public Object get(int index) throws ArrayOutOfBoundsException { If (index < 0 index >= size()) throw new ArrayOutOfBoundsException( +index); } Η λέξη throws λέει στη Java ότι το αντικείμενο get μπορεί να εμφανίσει την Εξαίρεση ArrayOutOfBounds. Προσοχή μη μπερδέψετε το throws με το throw 14

Πιάνοντας μια Εξαίρεση Η Java τώρα περιμένει να βρει κώδικα, ο οποίος καλεί το get για να αντιμετωπίσει την εξαίρεση: - πιάνοντας την, - Πετώντας την. 15

Πιάνοντας μια Εξαίρεση Τι πρέπει να κάνουμε: -προσπαθούμε (try) να τρέξουμε κώδικα ο οποίος εμφανίζει μια εξαίρεση try { - και στη συνέχεια να πιάσουμε (catch)την εξαίρεση get(-1); } catch (ArrayOutOfBoundsException err) { } System.out.println( oh dear! ); 16

Πιάνοντας μια Εξαίρεση Μπορεί να θέλετε να δημιουργήσετε (να πετάξετε) εσείς μία εξαίρεση αντί να περιμένετε να εμφανιστεί. Ίσως επίσης δε θέλετε να αντιμετωπίσετε μία εξαίρεση. Πείτε στην Java ότι η μέθοδος σας την εμφανίζει void dobad() throws ArrayOutOfBoundsException { } get(-1); 17

Πετώντας μια Εξαίρεση 18

Πετώντας μια Εξαίρεση 19

Πετώντας μια Εξαίρεση 20

Πετώντας μια Εξαίρεση 21

Πετώντας μια Εξαίρεση 22

Πετώντας μια Εξαίρεση 23

Πετώντας μια Εξαίρεση 24

Πετώντας μια Εξαίρεση 25

Πετώντας μια Εξαίρεση 26

Πετώντας μια Εξαίρεση 27

Τι Συμβαίνει αν Κανείς δεν Αντιμετωπίσει την Εξαίρεση ; Αν τρέξετε public static void main(string[] args) throws Exception { dobad(); } Η Java τυπώνει το μήνυμα σφάλματος που βλέπετε Exception in thread "main" java.lang.arrayindexoutofboundsexception: -1 at YourClass.get(YourClass.java:50)at YourClass.doBad(YourClass.java:11)at YourClass.main(YourClass.java:10) 28

Περισσότερες Πληροφορίες; http://java.sun.com/docs/books/tutorial/essential/exceptions http://en.wikipedia.org/wiki/exceptions 29

7.2 Εντοπισμός Σφαλμάτων (Debugging) 30

Εντοπισμός Σφαλμάτων Η διαδικασία της εύρεσης και διόρθωσης ενός σφάλματος σε ένα πρόγραμμα. Μία θεμελιώδης δεξιότητα του προγραμματισμού. 31

Βήμα 1: Μην Κάνετε Λάθη Αρχικά μην εισάγετε σφάλματα. 32

Βήμα 1: Μην Κάνετε Λάθη Αρχικά μην εισάγετε σφάλματα. Επαναχρησιμοποίηση: Βρείτε έναν ήδη υπάρχοντα κώδικα που κάνει αυτό που θέλετε. Σχέδιο: σκεφτείτε πριν γράψετε τον κώδικα. Η καλύτερη εξάσκηση: Προτεινόμενη διαδικασία/τεχνική ώστε να αποφύγουμε συνήθη προβλήματα. 33

Σχέδιο: Ψευδοκώδικας Μία υψηλού επιπέδου κατανοητή περιγραφή του σκοπού που θέλουμε να έχει το πρόγραμμα. Μην ανησυχείτε για λεπτομέρειες του κώδικα αλλά για τη δομή του. 34

Ψευδοκώδικας: Έλεγχος Διαστήματος Παράδειγμα: Είναι ένας αριθμός στο διάστημα [x,y); Αν ισχύει αριθμός < x να επιστρέφει λανθασμένο. Αν ισχύει αριθμός >= y να επιστρέφει λανθασμένο. Αλλιώς να επιστρέφει αληθές. 35

Σχέδιο Εικονικό σχέδιο για αντικείμενα ή για το πώς λειτουργεί ένα πρόγραμμα. Μην ανησυχήσετε για μία συγκεκριμένη σημείωση, απλά να κάνετε κάτι που να έχει νόημα για εσάς. Τα άχρηστα χαρτιά είναι χρήσιμα. 36

Παράδειγμα 37

Βήμα 2: Βρείτε τα Σφάλματα Νωρίς Είναι πιο εύκολο να διορθώσουμε τα λάθη όσο πιο σύντομα τα βρούμε. Ελέγξτε το σχέδιο. Χρησιμοποιήστε εργαλεία για εντοπισμό πιθανών λαθών. Ελέγξτε την υλοποίηση σας. Ελέγξτε την εργασία σας βάζοντας συνθήκες. 38

Δοκιμή: Σημαντικοί Είσοδοι Θέλουμε να ελέγξουμε όλα τα μονοπάτια του προγράμματος. Σκεφτείτε ένα παράδειγμα για κάθε μονοπάτι. Παράδειγμα: Είναι ένας αριθμός στο διάστημα [x,y); 39

Διαστήματα: Σημαντικές Περιπτώσεις Κάτω από το χαμηλότερο όριο. Ίσο με το χαμηλότερο όριο. Μέσα στο διάστημα. Ίσο με το υψηλότερο όριο. Πάνω από το υψηλότερο όριο. 40

Διαστήματα: Σημαντικές Περιπτώσεις Τι συμβαίνει αν το χαμηλότερο όριο είναι μεγαλύτερο από το υψηλότερο; lower bound > upper bound Τι συμβαίνει αν το χαμηλότερο όριο ισούται με το υψηλότερο όριο; lower bound == upper bound 41

Ψευδοκώδικας: Έλεγχος Διαστήματος Είναι ένας αριθμός στο διάστημα [x,y); Είναι το 5 στο διάστημα [3,5); Αν ισχύει αριθμός < x να επιστρέφει λανθασμένο. Αν ισχύει αριθμός > y= να επιστρέφει λανθασμένο. Αλλιώς να επιστρέφει αληθές. 42

Ψευδοκώδικας: Έλεγχος Διαστήματος Είναι ένας αριθμός στο διάστημα [x,y); Είναι το 5 στο διάστημα [3,5); Αν ισχύει αριθμός < x να επιστρέφει λανθασμένο. Αν ισχύει αριθμός > y να επιστρέφει λανθασμένο. Αλλιώς να επιστρέφει αληθές. 43

Εργαλεία: Προειδοποιήσεις του Eclipse Προειδοποιήσεις: ίσως δεν πρόκειται για ένα σφάλμα, αλλά πιθανόν και να πρόκειται. Προτάσεις: πάντα πρέπει να διορθώνουμε τις προειδοποιήσεις. Επιπλέον έλεγχοι: FindBugs και σχετικά εργαλεία Έλεγχος ενότητας: Junit κάνει τον έλεγχο ευκολότερο 44

Εξακρίβωση Επαληθεύστε ότι ο κώδικας κάνει αυτό για το οποίο τον προορίζατε. Αν είναι σωστό: δε συμβαίνει τίποτα Αν είναι λάθος: το πρόγραμμα σταματάει με ένα σφάλμα Απενεργοποιημένη από προεπιλογή assert difference >= 0; 45

Παράδειγμα void printdifferencefromfastest(int[] marathontimes) { int fastesttime = findminimum(marathontimes); } for (int time : marathontimes) { int difference = time -fastesttime; assert difference >= 0; System.out.println("Difference: " + difference); } 46

Βήμα 3: Αναπαράγετε το Σφάλμα Υπολογίστε πώς να επαναλάβετε το σφάλμα. Δημιουργήστε μια σύντομη περίπτωση ελέγχου. Επιστρέψτε σε μία έκδοση που ήδη λειτουργεί και εισάγετε μία αλλαγή κάθε φορά μέχρι να επανέλθει το σφάλμα. Εξαλείψτε το επιπλέον υλικό που δε χρησιμοποιείται. 47

Βήμα 4: Δημιουργία Υπόθεσης Τι πηγαίνει στραβά; Τι μπορεί να έχει προκαλέσει το σφάλμα; Αμφισβητείστε τις παραδοχές: το x δεν είναι πιθανό: Αν οφείλεται σε κάτι άλλο; 48

Σε αυτή την ενότητα μιλήσαμε για: 7.1 Εξαιρέσεις (Exceptions) 7.2 Εντοπισμός Σφαλμάτων (Debugging) 50

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