Προγραμματισμός

Εξαιρέσεις για δράση

Προηγούμενο 1 2 3 4 Σελίδα 3 Επόμενο Σελίδα 3 από 4

Σύνολο εξαιρέσεων δείγματος

Στο Σχήμα 1 βλέπετε τέσσερα είδη εξαιρέσεων που έχουν σχεδιαστεί για να κάνουν τέσσερα είδη δράσης, ως εξής:

  1. BusinessException: Παρουσιάστηκε μια εξαιρετική κατάσταση. Αυτή η κατάσταση είχε προβλεφθεί και μπορεί να ελεγχθεί με τη μέθοδο κλήσης για άμεση ενέργεια.
  2. Παράμετρος Εξαίρεση: Τα δεδομένα που εισάγονται δεν επιτρέπουν την κατάλληλη επεξεργασία. Πρέπει να ζητηθεί από τον χρήστη να εισαγάγει εκ νέου έγκυρα δεδομένα ή να τροποποιήσει τις συνθήκες υπό τις οποίες πραγματοποιείται η επεξεργασία.
  3. Τεχνική Εξαίρεση: Παρουσιάστηκε ένα τεχνικό πρόβλημα όπως μια μη έγκυρη δήλωση SQL. Η ζητούμενη λειτουργία δεν μπορεί να εκπληρωθεί. Ο χρήστης θα πρέπει να επικοινωνήσει με το γραφείο βοήθειας για έρευνα ή να δοκιμάσει άλλη υπηρεσία. Η χρήση της εφαρμογής από άλλους χρήστες δεν επηρεάζεται.
  4. CriticalTechnicalException: Παρουσιάστηκε ένα τεχνικό πρόβλημα, όπως ένα σφάλμα της βάσης δεδομένων. Υπό αυτές τις συνθήκες, ολόκληρη η εφαρμογή είναι αχρησιμοποίητη. Ο χρήστης θα πρέπει να ενθαρρυνθεί να προσπαθήσει ξανά αργότερα. Άλλοι χρήστες δεν πρέπει να χρησιμοποιούν την εφαρμογή έως ότου επιδιορθωθεί.

Αυτό το σύνολο εξαιρέσεων είναι μόνο ένα παράδειγμα. Πολλά άλλα σύνολα εξαιρέσεων θα μπορούσαν να οριστούν με παρόμοιο τρόπο. Για παράδειγμα, Τεχνική Εξαίρεση και CriticalTechnicalException θα μπορούσε να σχεδιαστεί ως μια κατηγορία εξαίρεσης με ένα boolean αυστηρότητα Χαρακτηριστικό. Αυτό που είναι σημαντικό είναι να επικεντρωθούμε στο είδος της δράσης που πρέπει να αναληφθεί, και όχι στο θέμα που έθεσε την εξαίρεση.

Καταγραφή εξαίρεσης

Αν και η σημασιολογική εξαίρεση επικεντρώνεται στη δράση που πρέπει να αναληφθεί, το ζήτημα που τέθηκε είναι επίσης σημαντικό. Η ομάδα ανάπτυξης θα μπορούσε, για παράδειγμα, να χρησιμοποιήσει αυτές τις πληροφορίες για να εντοπίσει τον κώδικα. Στον σχεδιασμό εξαιρέσεων, πληροφορίες σχετικά με την αιτία της εξαίρεσης βρίσκονται στο αρχείο καταγραφής σφαλμάτων της εφαρμογής. Με ένα καλό πλαίσιο καταγραφής, θα πρέπει να αρκεί η καταγραφή πληροφοριών σχετικά με το ζήτημα από το μήνυμα εξαίρεσης και το ίχνος στοίβας.

Το μόνο ζήτημα που παραμένει στον τρόπο σχεδίασης της εξαίρεσης, έτσι ώστε αυτές οι πληροφορίες να μπορούν να ανακτηθούν εύκολα. Μια λύση είναι να παρέχετε την εξαίρεση με ένα ταυτότητα χαρακτηριστικό που αντιπροσωπεύει το είδος του ζητήματος. Επίσης, εάν το ζήτημα έχει ρίξει τη δική του εξαίρεση, αυτή η εξαίρεση μπορεί να τοποθετηθεί στην εξαίρεση εφαρμογής. Κατά τον χρόνο σύλληψης, το αρχικό μήνυμα και το ίχνος στοίβας μπορούν να ανακτηθούν από την ένθετη εξαίρεση. ο ταυτότητα Το χαρακτηριστικό και η ένθεση εξαιρέσεων είναι δύο τρόποι για να συμπεριληφθούν πληροφορίες που σχετίζονται με το θέμα στην ίδια την εξαίρεση.

Σχεδιάζοντας τη ροή των εξαιρέσεων

Μόλις σχεδιάσετε τις εξαιρέσεις οι ίδιοι, το επόμενο βήμα είναι να σκεφτείτε πώς θα περάσουν στην εφαρμογή σας. Μια τυπική αρχιτεκτονική εφαρμογών JEE αποτελείται κυρίως από τέσσερα πακέτα: παρουσίαση, επιχείρηση, ολοκλήρωση και επιμονή. Οι εξαιρέσεις δημιουργούνται συνήθως από τα πακέτα ολοκλήρωσης και επιμονής. Στο επιχειρηματικό πακέτο, τα στρώματα εσωτερικού χρόνου εκτέλεσης πιάνουν ελεγμένες εξαιρέσεις το συντομότερο δυνατό, ενώ τα εξωτερικά στρώματα λαμβάνουν τις εξαιρέσεις χρόνου εκτέλεσης και λαμβάνουν τις κατάλληλες ενέργειες ανάλογα με την κατηγορία τους. Μπορείτε επίσης να ρίξετε και να πιάσετε μερικές ελεγμένες εξαιρέσεις μέσα στο επιχειρηματικό πακέτο. Σε αυτό το σχήμα, η ευθύνη των πακέτων ενοποίησης και επιμονής, καθώς και του εσωτερικού στρώματος του επιχειρηματικού πακέτου, είναι να μετατρέψει τις εξαιρέσεις χρόνου εκτέλεσης σε ενέργειες. Μια τυπική αρχιτεκτονική εφαρμογών JEE αυτού του είδους φαίνεται στο Σχήμα 2.

Η διαδρομή μιας εξαίρεσης που ρίχνεται από το πακέτο επιμονής (για παράδειγμα) εξαρτάται από το πού μπορεί να επιλυθεί το ζήτημα. Εάν η μέθοδος κλήσης μπορεί να επιλύσει το ζήτημα, η εξαίρεση εντοπίζεται αμέσως, λαμβάνεται η κατάλληλη ενέργεια και η επιχείρηση ρέει κανονικά. Εάν το ζήτημα δεν μπορεί να επιλυθεί, η εξαίρεση τοποθετείται σε εξαίρεση χρόνου εκτέλεσης και μεταφέρεται σιωπηλά μέσω των ενδιάμεσων επιπέδων του επιχειρηματικού πακέτου στα ανώτερα επίπεδα της εφαρμογής. Σε αυτά τα επίπεδα, συνήθως από κάποιο είδος ελεγκτή εφαρμογών, η εξαίρεση χρόνου εκτέλεσης παγιδεύεται, λαμβάνεται η κατάλληλη ενέργεια και το επίπεδο παρουσίασης εμφανίζει το αντίστοιχο μήνυμα σφάλματος στον χρήστη. Η άμεση σύλληψη ελεγχόμενων εξαιρέσεων και η καθυστερημένη σύλληψη εξαιρέσεων χρόνου εκτέλεσης είναι τα δύο κύρια σενάρια σε αυτό το είδος σχεδιασμού εξαιρέσεων, όπως φαίνεται στο Σχήμα 3.

$config[zx-auto] not found$config[zx-overlay] not found