Το
@SneakyThrows μπορεί να χρησιμοποιηθεί για να πετάξει κρυφά επιλεγμένες εξαιρέσεις χωρίς να το δηλώσετε στην ρήτρα ρίψεων της μεθόδου σας. Αυτή η κάπως αμφισβητούμενη ικανότητα θα πρέπει φυσικά να χρησιμοποιηθεί προσεκτικά.
Πώς χειρίζεστε τις εξαιρέσεις χωρίς ρίψη;
Απλώς χρησιμοποιήστε το try catch block και συνεχίστε, εάν η εξαίρεση είναι ασήμαντη και δεν επηρεάζει καμία συμπεριφορά του προγράμματός σας. Μπορείτε να αποφύγετε να πιάσετε μια εξαίρεση, αλλά εάν υπάρχει μια εξαίρεση και δεν την καταλάβετε, το πρόγραμμά σας θα σταματήσει να εκτελείται (crash). Δεν υπάρχει τρόπος να αγνοήσετε μια εξαίρεση.
Τι είναι μια επιλεγμένη εξαίρεση;
Μια επιλεγμένη εξαίρεση είναι ένας τύπος εξαίρεσης που πρέπει είτε να συλληφθεί είτε να δηλωθεί στη μέθοδο με την οποία ρίχνεται. Για παράδειγμα, το java.io. IOException είναι μια επιλεγμένη εξαίρεση.
Ποια είναι η διαφορά μεταξύ επιλεγμένων και μη επιλεγμένων εξαιρέσεων;
1) Επιλεγμένα: είναι οι εξαιρέσεις που ελέγχονται κατά το χρόνο μεταγλώττισης. Εάν κάποιος κώδικας σε μια μέθοδο εισάγει μια επιλεγμένη εξαίρεση, τότε η μέθοδος πρέπει είτε να χειριστεί την εξαίρεση είτε να καθορίσει την εξαίρεση χρησιμοποιώντας τη λέξη-κλειδί ρίχνει. … 2) Μη επιλεγμένες είναι οι εξαιρέσεις που δεν ελέγχονται κατά τον χρόνο μεταγλώττισης.
Είναι η εξαίρεση χρόνου εκτέλεσης υποκλάση εξαίρεσης;
RuntimeException είναι η υπερκλάση αυτών των εξαιρέσεων που μπορούν να δημιουργηθούν κατά την κανονική λειτουργία της εικονικής μηχανής Java. Το RuntimeException και οι υποκατηγορίες του είναιμη επιλεγμένες εξαιρέσεις.