slide1
Download
Skip this Video
Download Presentation
Εισαγωγή στη JAV Α ( μέρος Β’ )

Loading in 2 Seconds...

play fullscreen
1 / 22

Εισαγωγή στη JAV Α ( μέρος Β’ ) - PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on

Εισαγωγή στη JAV Α ( μέρος Β’ ). Βασίλης Παπαταξιάρχης {[email protected]} Μάθημα : Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα : Ιζαμπώ Καράλη Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Περισσότερα θέματα στη Java. Λάθη και Εξαιρέσεις

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Εισαγωγή στη JAV Α ( μέρος Β’ )' - marion


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Εισαγωγή στη JAVΑ(μέρος Β’)

Βασίλης Παπαταξιάρχης

{[email protected]}

Μάθημα: Αντικειμενοστραφής Προγραμματισμός

Διδάσκουσα: Ιζαμπώ Καράλη

Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

slide2
Περισσότερα θέματα στη Java
  • Λάθη και Εξαιρέσεις
  • Μετατροπή Αντικειμένων
  • Είσοδος / Έξοδος
  • Γενικά Σχόλια
  • Εργαλεία Ανάπτυξης
slide3
Λάθη και Εξαιρέσεις
  • Κατά την εκτέλεση μίας μεθόδου μπορεί να προκληθούν συνθήκες απρόβλεπτες.
  • Σε αυτές τις περιπτώσεις εμφανίζονται λάθη (errors)και εξαιρέσεις (exceptions)
  • Η Java επιτρέπει αυτόματο χειρισμό τέτοιων λαθών (automated exception handling)
  • Ένα αντικείμενο της κλάσης Error δημιουργείται λόγω «σημαντικών» λαθών που δεν δύναται να αντιμετωπιστούν στα πλαίσια ενός προγράμματος

πακέτο

java.lang

  • Π.χ. NoClassDefFoundError

(για παράδειγμα στην περίπτωση που έχουν οριστεί λάθος κατάλογοι στη μεταβλητήπεριβάλλοντος CLASSPATH)

slide4
Εξαιρέσεις (1/2)
  • Μία εξαίρεσηείναι οποιοδήποτε γεγονός διαταράσσει την ομαλή εκτέλεση ενός προγράμματος
  • Η μέθοδος στην οποία προκαλείται το σφάλμα δημιουργεί ένα exception object, το οποίο περιέχει πληροφορίες για το σφάλμα που προκλήθηκε και καλούμαστε να το διαχειριστούμε runtime.
  • Το σύστημα ελέγχει τη στοίβα κλήσης

συναρτήσεων με σκοπό να βρει κώδικα

που να κάνει handle το exception που

προέκυψε.

slide5
Εξαιρέσεις (2/2)
  • Η αναζήτηση ξεκινά από τη συνάρτηση στην οποία προκλήθηκε το σφάλμα και καταλήγει στη main (ανπριν δεν βρεθεί handler)
  • Ένας handler είναι κατάλληλος να κάνει handle ένα exception αν ο τύπος του exception object ταιριάζει με τον τύπο εξαίρεσης που ο handler μπορεί να διαχειριστεί.
  • Αν βρεθεί κατάλληλος handler, τότε εκτελείται ο κώδικάς του, διαφορετικά το πρόγραμμα τερματίζεται.
slide6
Χειρισμός Εξαιρέσεων
  • try – catch
    • Η κλήση της μεθόδου η εκτέλεση της οποίας ενδέχεται να προκαλέσει μία εξαίρεση τοποθετείται εντός του μπλοκεντολών try.

try {

//κώδικας που μπορεί να

//προκαλέσει εξαίρεση

} catch(MyException1 mye1) {

// …

} catch(MyException2 mye2) {

// …

} finally {

// …

}

  • Το μπλοκ catch περιέχει εντολές που θα διαχειριστούν την εξαίρεση που προκλήθηκε.
  • finally: μπλοκ εντολών που ακολουθεί των catch μπλοκ και περιέχει κώδικα που εκτελείται είτε συμβεί εξαίρεση είτε όχι
slide7
Συνήθεις Εξαιρέσεις
  • NullPointerException: Προσπέλαση αντικειμένου null
  • IllegalArgumentException: Λάθος τύπου ορίσματα
  • ArrayIndexOutOfBoundsException: Εκτός ορίων πίνακα
  • ArithmeticException: Διαίρεση με το 0
  • FileNotFoundException: Το αρχείο δεν βρέθηκε στο δίσκο
slide8
Πλεονεκτήματα Χειρισμού Εξαιρέσεων
  • Διαχωρισμός κώδικα για αναγνώριση λαθών από τον «κανονικό» κώδικα
  • Ικανότητα διαχείρισης της εξαίρεσης ακολουθώντας τη στοίβα κλήσης μεθόδων
  • Δυνατότητα χειρισμού μίας εξαίρεσης με διαφορετικούς τρόπους
    • Πολλά catchμπλοκ μπορούν να αναφέρονται στο ίδιο tryμπλοκ
    • Υψηλότερα οι ειδικότερες εξαιρέσεις στον κώδικα
  • Δυνατότητα δημιουργίας νέων κλάσεων εξαιρέσεων
slide9
Μετατροπή Αντικειμένων
  • Η μετατροπή αντικειμένων (type casting)είναι χρήσιμη όταν θέλουμε να διαχειριστούμε ένα αντικείμενο ως διαφορετικού του ενός τύπου
  • Μετατροπές προς τα πάνω (upcasting)
    • Πάντα επιτρεπτές
    • Γίνονται με απλή ανάθεση
  • Μετατροπές προς τα κάτω (downcasting)
    • Δεν είναι πάντα επιτρεπτές
    • Γίνονται με χρήση cast τελεστή
    • Μπορεί να γίνει κανονικά η μεταγλώττιση (αφού το cast ίσως επιτρέπεται), αλλά να παραχθεί runtime error
slide11
Είσοδος / Έξοδος (I/O)
  • Η Java χρησιμοποιεί ροές (streams) για νααναπαραστήσει πηγές εισόδου ή προορισμούς εξόδου (π.χ. αρχεία στο δίσκο, άλλα προγράμματα).
    • Ροή: ακολουθία από δεδομένα (απλά bytes μέχρι σύνθετα αντικείμενα).
  • Είσοδος / Έξοδος σε αρχεία δίσκου
slide12
Ροές Εισόδου / Εξόδου
  • Ροές Εισόδου (Input Streams)
    • Διαβάζουν ένα «τεμάχιο» πληροφορίας τη φορά
  • Ροές Εξόδου (Output Streams)
    • Γράφουν ένα «τεμάχιο» πληροφορίας τη φορά
slide13
Τύποι Ροών (1/2)
  • Byte Streams: Ι/Ο αυθαίρετου τύπου δεδομένων
  • Character Streams: I/O χαρακτήρων
  • Buffered Streams : χρήση δομής buffer για αποδοτικότερη αλληλεπίδραση
  • Scanning and Formatting: για formatted κείμενο
slide14
Τύποι Ροών (2/2)
  • I/O from the command line
    • Standard Stream
      • Input: πληκτρολόγιο
      • Output: οθόνη
    • Console
  • Data Streams: για primitive data types και String δυαδικής μορφής
  • Object Streams: για οποιουδήποτε τύπου αντικείμενα
byte streams
Byte Streams
  • Ροές που διαχειρίζονται χαμηλού επιπέδου δεδομένα
  • Συνήθεις ροές byte
    • FileInputStream/ FileOutputStream
  • Όλοι οι υπόλοιποι τύποι ροών βασίζονται στις ροές byte.
slide16
Ι/Ο από αρχεία δίσκου
  • Οι ροές δεν υποστηρίζουν όλες τις επιθυμητές αλληλεπιδράσεις με τα αρχεία που βρίσκονται στο δίσκο
  • File: χειρισμός αρχείων ανεξαρτήτου πλατφόρμας και OS
  • Random Access File: υποστηρίζει μη-ακολουθιακή προσπέλαση στα αρχεία
slide17
Χρόνος Εκτέλεσης
  • Γενικά, ο χρόνος εκτέλεσης ενός java προγράμματος αναμένεται μεγαλύτερος ενός ισοδύναμου σε κάποια άλλη γλώσσα προγραμματισμού (όχι όμως και ο χρόνος ανάπτυξης )
  • Αιτία: Ο μεταγλωττισμένος για μία μηχανή κώδικας είναι εν γένει ταχύτερος από τον κώδικα που εκτελείται από έναν interpreter.
  • Βελτίωση: Just-In-Time μεταγλώττιση
slide18
Κάποια Τελευταία Σχόλια…
  • Πώς προέκυψε ο όρος “bytecode”;
    • Επειδή ουσιαστικά αποτελεί μία binary αναπαράσταση του προγράμματος προορισμένη να εκτελεστεί από τη JVM (software)και όχι από το hardware.
  • Σε τι γλώσσα είναι γραμμένη η Java;
    • Οι περισσότεροι compilers(π.χ. της Sun) για Java είναι πλέον γραμμένοι σε Java, αν και αρχικά ως βάση χρησιμοποιήθηκαν οι γλώσσες C/C++.
    • Σε ότι αφορά τις JVM ακόμα και σήμερα χρησιμοποιούν C++ (όχι όμως αποκλειστικά), κυρίως για λόγους απόδοσης. Ακόμα και JVMs της Sun!
slide20
Εργαλεία Ανάπτυξης
  • Eclipse (open source)
  • NetBeans (open source)
  • JDeveloper (Oracle)
  • Visual J++ (Microsoft)
slide21
Προτεινόμενες Πηγές
  • Exceptions,http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html
  • Input/Output, http://java.sun.com/docs/books/tutorial/essential/io/
  • Type casting, http://www.janeg.ca/scjp/oper/cast.html
ad