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

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Τι είναι ένα Java.rmi.RemoteException

; Java προγραμματιστές ξοδεύουν πολύ από το χρόνο ανάπτυξής τους σχεδιασμό κατάλληλων χειρισμό εξαίρεση, από τις εξαιρέσεις που προκύπτουν στις βιβλιοθήκες που χρησιμοποιούν για το σχεδιασμό που εξαιρέσεις που θα δημιουργήσουν με τον δικό τους κώδικα . Ενώ οι περισσότεροι κώδικα Java ασχολείται με κοινές εξαιρέσεις , όπως που προκύπτουν από τα λάθη αρχείο ή μηδενικές αναφορές , η RemoteException είναι λιγότερο συχνά καλούνται να αντιμετωπίσουν . Ως εκ τούτου , είναι δύσκολο για τους προγραμματιστές Java για να πάρετε μια σταθερή κατανόηση του όταν ρίχνονται και τι θα μπορούσε να σημαίνει . Ένα μικρό ιστορικό για απομακρυσμένης πρόσβασης
Η

απομακρυσμένης πρόσβασης είναι ένα από τα « σκοτεινές τέχνες » του προγραμματισμού ηλεκτρονικών υπολογιστών σε πολλά προγραμματιστές . Στην πραγματικότητα , είναι εύκολο για τους προγραμματιστές να περάσει μια ολόκληρη καριέρα , χωρίς να ανησυχείτε για αυτό . Οι λεπτομέρειες είναι αρκετά άσχημη, αλλά η ουσία του είναι απλή : . Ένα πρόγραμμα σε έναν υπολογιστή καλεί κώδικα σε έναν άλλο υπολογιστή

Για να διευκολύνει τη συζήτηση λίγο , ο όρος «πελάτης » θα αναφέρεται στην αίτηση ο προγραμματιστής είναι ανάπτυξη , και "server" θα αναφέρεται στην αίτηση ο προγραμματιστής επικοινωνεί με .
εικόνων μια ματιά στο πώς Java Remoting έργα

Οι λεπτομέρειες της γραφής ένα πρόγραμμα Java που εκτελεί απομακρυσμένης πρόσβασης είναι πέρα ​​από το πεδίο εφαρμογής του παρόντος άρθρου , αλλά οι βασικές έννοιες αξίζει να καλύπτουν . Ένα απομακρυσμένο αντικείμενο αντιπροσωπεύεται από ένα interface . Ο κύριος του έργου θα λάβει ένα στιγμιότυπο της διεπαφής και να καλέσει μια μέθοδο σε αυτό .

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

φυσικά , τα πράγματα μπορεί πάντα να πάει στραβά . Ίσως ένα πρόγραμμα καλεί μια λειτουργία που δεν υπάρχει στον άλλο υπολογιστή . Για παράδειγμα , εάν προσπαθήσετε να καλέσετε a.foo ( ) χρησιμοποιώντας RMI , και την έκδοση στον υπολογιστή είστε σε επικοινωνία με δεν έχει a.foo ( ) ορίζεται , τα πράγματα σπάσει . Μια άλλη πιθανότητα είναι ότι ένα σφάλμα στο πρόγραμμα server , όπως ένα πρόβλημα σύνδεσης της βάσης δεδομένων .

Όταν συμβαίνει αυτό , θα πάρετε μια RemoteException ή σε μία από τις υποκατηγορίες της .
Εικόνων γεύσεις της RemoteException
Η

Υπάρχουν διάφορες υποκατηγορίες του RemoteException να χειριστεί διάφορες καταστάσεις που μπορεί να συμβούν (βλέπε την ενότητα Πόροι για έναν εξαντλητικό κατάλογο των υποκατηγοριών ) . Για παράδειγμα , αν παρουσιαστεί κάποιο πρόβλημα , ενώ διαλογής ή unmarshalling τα αντικείμενα , ένα MarshalException ή UnmarshalException θα ρίξει αντίστοιχα . Εάν συμβεί μια εξαίρεση που δεν έχει δηλωθεί στην υπογραφή της μεθόδου που ονομάζεται (δηλαδή , μια ανεξέλεγκτη εξαίρεση runtime) , ένα UnexpectedException θα ριχτούν - αυτό θα μπορούσε να είναι μια NullPointerException στο διακομιστή , για παράδειγμα
Η <. br > RemoteExceptions Χειρισμός
Η

Ενώ γενική πρακτική Java συνιστά να πιάσει την πιο εξειδικευμένη περίπτωση της κατ 'εξαίρεση, αυτό μπορεί να είναι δύσκολο να επιτευχθεί όταν εργάζονται με RMI . Υπάρχουν πάρα πολλές πιθανές εξαιρέσεις για να εξετάσει κατά την εξέταση των διαφόρων υποκατηγοριών RemoteException που ασχολούνται με τα ατομικά μάλλον δεν αξίζει τον κόπο .

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα