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 εκτελείται πριν από την τελική δήλωση, εάν τελικά υπάρχει.
Εάν υπάρχει δήλωση επιστροφής τελικά, τότε το πρόγραμμα θα επιστρέψει, οπότε η επιστροφή τελικά θα επιστραφεί σίγουρα.
Ο μεταγλωττιστής υλοποιεί τελικά την επιστροφή ως προειδοποίηση.
|