petriss Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 Καλησπέρα! Διαβάζοντας σχετικά για τις εξαιρέσεις στην γλώσσα java είδα ότι υπάρχει μία δεσμευμένη λέξη κλειδί throws η οποία χρησιμοποιείται όταν μία μέθοδος δεν συλλαμβάνει όλες τις εξαιρέσεις από μόνη της. Δηλαδή το throws απλά διευκρινίζει την ανάγκη που υπάρχει να ελεγχθεί μία εξαίρεση? Επίσης στην Java οι εξαιρέσεις διακρίνονται σε ελεγχόμενες και μη ελεγχόμενες. Στην εντολή throws μπορεί να περιέχονται μόνο μη ελεγχόμενες εξαιρέσεις. Αν έχω πρόκληση μίας μη ελεγχόμενης εξαίρεσης μέσα σε μία μέθοδο, που φροντίζω να αντιμετωπίσω μέσα στην μέθοδο στην οποία αυτή προκαλείται, τότε χρειάζεται η χρήση του throws και η δήλωση της εξαίρεσης? Δεν ξέρω αν έγινα απολύτως κατανοητός απλώς είναι λίγο λεπτό θέμα και προσπαθώ να βγάλω άκρη.. Αν μπορεί κάποιος ας βοηθήσει. Ευχαριστώ!
Moderators Kercyn Δημοσ. 16 Μαρτίου 2015 Moderators Δημοσ. 16 Μαρτίου 2015 Πες ότι έχεις μια συνάρτηση και μέσα σ' αυτή έχεις κώδικα που μπορεί να κάνει throw ένα exception. Αν διαχειριστείς αυτόν τον κώδικα μέσα στη συνάρτηση, τότε η ίδια η συνάρτηση δεν κάνει throw τίποτα. Αν δε διαχειριστείς αυτόν τον κώδικα, τότε η συνάρτησή σου μπορεί να κάνει throw, μιας και δε θα έχεις διαχειριστεί το exception μέσα στη συνάρτηση. 1
petriss Δημοσ. 16 Μαρτίου 2015 Μέλος Δημοσ. 16 Μαρτίου 2015 Κάνοντας throw όμως στην ουσια θα πρέπει να χειρηστώ την εξαίρεση μετά έτσι?
Moderators Kercyn Δημοσ. 16 Μαρτίου 2015 Moderators Δημοσ. 16 Μαρτίου 2015 Άμα η συνάρτηση κάνει throw τότε το throw αυτό πρέπει να το διαχειριστεί αυτός που καλεί τη συνάρτηση.
petriss Δημοσ. 16 Μαρτίου 2015 Μέλος Δημοσ. 16 Μαρτίου 2015 Αν δεν βαλουμε throw θα είναι λάθος? θα μας βγάλει κάποιο σφάλμα?
Sheogorath Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 Αν δεν την διαχειριστείς μέσα στην συνάρτηση, νομίζω ναι, ή βγάζει ανέλενκτη. Και τα δύο είναι ανεπιθύμητα οπότε...
MeTaXaS4 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 Αν δεν βαλουμε throw θα είναι λάθος? θα μας βγάλει κάποιο σφάλμα? θα χτυπάει ο compiler ότι έχεις ένα throw και δεν το διαχειρίζεσαι. Γενικά ή μέσα στην συνάρτηση θα έχεις ένα try catch να ελέγχεις τις εξαιρέσεις σου ή θα είναι όπως είπε και ο kercyn εκεί που καλείται η συνάρτηση.
Papakaliati Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 To throw σαν εντολη θα την χρησιμοποιήσεις θεωρω μονο κατα την διαρκεια του development για υπενθύμιση ουσιαστικα οτι λειπει functionality απο μια εντολη ας πουμε. πχ throw new System.NotImplementedException();
MeTaXaS4 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 δεν συμφωνώ με τον Papakaliati στο παραπάνω, πολλές φορές μπορεί να χρειαστεί να κάνεις throw.
Papakaliati Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 δεν συμφωνώ με τον Papakaliati στο παραπάνω, πολλές φορές μπορεί να χρειαστεί να κάνεις throw. Οπως; (Δεν λεω το οπως ουτε ειρωνικα ουτε για να σε μειωσω, αλλα για την περιπτωση που θα μαθω κατι, μην παρεξηγουμαστε)
MeTaXaS4 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 δεν μου έρχεται κάτι συγκεκριμένο, αλλά να ανοίξω τώρα eclipse και να βάλω search για throw? προσωπικά θυμάμαι και το χρησιμοποιώ.
petriss Δημοσ. 16 Μαρτίου 2015 Μέλος Δημοσ. 16 Μαρτίου 2015 Ευχαριστώ πολύ όλους για τις απαντήσεις σας. Απλά η ερώτηση μου αφορούσε το throws και όχι το throw. Είναι δύο διαφορετικές δεσμευμένες λέξεις κλειδιά της γλώσσας... Επίσης αν μπορεί κάποιος να διευκρινίσει ποια ακριβώς είναι η διαφορά ανάμεσα στις ελεγχόμενες και μη ελεγχόμενες εξαιρέσεις γιατί έχω ψιλοκολλήσει και με αυτό. Ευχαριστώ!
MeTaXaS4 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 Λοιπόν μη ελεγμένο, οπότε κάνει throws public void function throws Exception{ throw new System.NotImplementedException(); } ελεγμένο θα ήταν public void function{ try{ throw new System.NotImplementedException(); } catch(Exception ex){ //... } } όπως βλέπεις πρέπει να αναφερθεί και το throw για να καταλάβεις την χρήση του throws.
petriss Δημοσ. 16 Μαρτίου 2015 Μέλος Δημοσ. 16 Μαρτίου 2015 φίλε είσαι ωραίος αυτό μόνο! ένα τελευταίο θα ήθελα μόνο να ρωτήσω σχετικά με μία αναφορά που διάβασα σε ένα βιβλίο. Στο βιβλίο αυτο γίνεται μία αναφορα στις εξαιρέσεις που ορίζονται στο java.lang. Το βιβλίο έχει ομαδοποιήσει τις εξαιρέσεις του java.lang σε δύο κατηγορίες: ελεγχόμενες και μη ελεγχόμενες. Με βάση ποιο κριτήριο γίνεται αυτό? Εννοώ ότι με βάση το παραπάνω παράδειγμα ,το οποίο είναι και πολύ κατανοητό , μπορούμε να καταλάβουμε πότε έχουμε ελεγχόμενη και μη ελεγχόμενη περίπτωση. Όμως στην περίπτωση που αναφέρομαι φαίνεται να είναι κάπως αυθαίρετος ο ορισμός. Γνωρίζει κάποιος κάτι?
MeTaXaS4 Δημοσ. 16 Μαρτίου 2015 Δημοσ. 16 Μαρτίου 2015 βασικά είχα καταλάβει κάτι διαφορετικό ότι ρωτούσες, so διάβασε αυτό. http://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα