Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 15557|Απάντηση: 0

[Επικοινωνία] Εάν υπάρχει επιστροφή, δοκιμάστε να πιάσετε τελικά την εντολή εκτέλεσης

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 17/12/2015 12:34:00 μ.μ. | | |
1. Ανεξάρτητα από το αν υπάρχει εξαίρεση ή εξαίρεση, ο κώδικας στο τελικό μπλοκ θα εκτελεστεί.
2. Όταν υπάρχει επιστροφή στο try and catch, τελικά θα εξακολουθεί να εκτελείται.
3. Τέλος, εκτελείται μετά τη λειτουργία έκφρασης μετά την επιστροφή (αυτή τη στιγμή, η τιμή μετά τη λειτουργία δεν επιστρέφεται, αλλά η τιμή που θα επιστραφεί αποθηκεύεται πρώτα, ανεξάρτητα από τον κωδικό στο τέλος, η επιστρεφόμενη τιμή δεν θα αλλάξει, ακόμα κι αν είναι η προηγουμένως αποθηκευμένη τιμή), επομένως η τιμή επιστροφής της συνάρτησης καθορίζεται πριν από την τελική εκτέλεση.
4. Είναι καλύτερο να μην συμπεριλάβετε τελικά την επιστροφή, διαφορετικά το πρόγραμμα θα βγει νωρίς και η τιμή επιστροφής δεν είναι η τιμή επιστροφής που αποθηκεύτηκε στο try or catch.
Παράδειγμα:
Κατάσταση 1:try{} catch(){}τελικά{} επιστροφή;
            Προφανώς η διαδικασία πραγματοποιείται με τη σειρά.
Κατάσταση 2:try{ επιστροφή; }catch(){} τελικά{} επιστροφή;
          Το πρόγραμμα εκτελεί τον κώδικα πριν από την επιστροφή στο μπλοκ try (συμπεριλαμβανομένης της λειτουργίας έκφρασης στη δήλωση return).
         Στη συνέχεια, εκτελέστε το τελικό μπλοκ και, τέλος, εκτελέστε την επιστροφή στην προσπάθεια.
         Τέλος, μπλοκάρετε την επιστροφή, επειδή το πρόγραμμα έχει επιστρέψει στο TRY, επομένως δεν εκτελείται πλέον.
Κατάσταση 3:try{ } catch(){return; } τελικά{} επιστροφή;
         Το πρόγραμμα εκτελεί πρώτα το try και αν συναντήσει μια εξαίρεση, εκτελεί το μπλοκ catch,
         Εάν υπάρχει εξαίρεση, εκτελέστε τον κωδικό πριν από την επιστροφή (συμπεριλαμβανομένης της λειτουργίας έκφρασης στην εντολή επιστροφής) στο catch και, στη συνέχεια, εκτελέστε όλο τον κώδικα στην τελική δήλωση.
                     Τέλος, εκτελέστε την επιστροφή στο μπλοκ σύλληψης. Τελικά, ο κώδικας σε 4 σημεία δεν θα εκτελείται πλέον.
         Χωρίς εξαίρεση: Εκτελέστε δοκιμάστε και μετά επιστρέψτε τελικά.
Κατάσταση 4:try{ επιστροφή; }catch(){} τελικά{επιστροφή; }
          Το πρόγραμμα εκτελεί τον κώδικα πριν από την επιστροφή στο μπλοκ try (συμπεριλαμβανομένης της λειτουργίας έκφρασης στη δήλωση return).
          Στη συνέχεια, εκτελέστε το τελικό μπλοκ, γιατί υπάρχει επιστροφή στο τελικό μπλοκ, οπότε βγείτε νωρίς.
Περίπτωση 5:try{} catch(){return; }τελικά{επιστροφή; }
          Το πρόγραμμα εκτελεί τον κώδικα πριν από την επιστροφή (συμπεριλαμβανομένων των λειτουργιών έκφρασης στη δήλωση επιστροφής) στο μπλοκ catch.
          Στη συνέχεια, εκτελέστε το τελικό μπλοκ, γιατί υπάρχει επιστροφή στο τελικό μπλοκ, οπότε βγείτε νωρίς.
Κατάσταση 6:try{ επιστροφή; }catch(){επιστροφή; } τελικά{επιστροφή; }
          Το πρόγραμμα εκτελεί τον κώδικα πριν από την επιστροφή στο μπλοκ try (συμπεριλαμβανομένης της λειτουργίας έκφρασης στη δήλωση return).
          Υπάρχει μια εξαίρεση: εκτελέστε τον κωδικό πριν από την επιστροφή (συμπεριλαμβανομένης της λειτουργίας έκφρασης στη δήλωση επιστροφής) στο μπλοκ catch.
                       Στη συνέχεια, εκτελέστε το τελικό μπλοκ, γιατί υπάρχει επιστροφή στο τελικό μπλοκ, οπότε βγαίνει νωρίς.
          Χωρίς εξαίρεση: στη συνέχεια εκτελέστε ξανά το τελικό μπλοκ και βγείτε νωρίς γιατί υπάρχει επιστροφή στο τελικό μπλοκ.

Τελικό συμπέρασμα: Οποιαδήποτε δήλωση επιστροφής στο try or catch εκτελείται πριν από την τελική δήλωση, εάν τελικά υπάρχει.
                  Εάν υπάρχει δήλωση επιστροφής τελικά, τότε το πρόγραμμα θα επιστρέψει, οπότε η επιστροφή τελικά θα επιστραφεί σίγουρα.
                  Ο μεταγλωττιστής υλοποιεί τελικά την επιστροφή ως προειδοποίηση.




Προηγούμενος:Το .net χρησιμοποιεί το HttpListener για να ακούει περιεχόμενο και χρησιμοποιεί νήματα για να απαντά στους χρήστες για να αποτρέψει τον αποκλεισμό
Επόμενος:VS2013, φτάστε γρήγορα σε μια συγκεκριμένη γραμμή κώδικα, ποια είναι η συντόμευση;
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com