Πρόταση Resume

Επαναφέρει τις πληροφορίες σφάλματος και δείχνει τι θα εκτελεστεί μετά.

Σύνταξη:

Διάγραμμα πρότασης Resume


     Resume [ [0] | label | Next ]
   

Παράμετροι:

0: Επαναφέρει τις πληροφορίες σφάλματος και επανεκτελεί την οδηγία που προκάλεσε το σφάλμα. Το 0 είναι προαιρετικό.

label: Επαναφέρει τις πληροφορίες σφάλματος και συνεχίζει στη συγκεκριμένη ετικέτα της τρέχουσας υπορουτίνας.

Next: Επαναφέρει τις πληροφορίες σφάλματος και εκτελεί την οδηγία ακολουθώντας αυτήν που προκάλεσε το σφάλμα.

Οι πληροφορίες σφάλματος είναι δομημένες με τις συναρτήσεις Erl, Err και Error$.

tip

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


Κωδικοί σφάλματος:

20 Επαναφορά χωρίς λάθος

Παραδείγματα:

Οι τυπικές ρουτίνες χειρισμού σφάλματος είναι: προειδοποίηση του χρήστη, διόρθωση του σφάλματος, καταγραφή πληροφοριών σφάλματος ή επαναποστολή προσαρμοσμένων σφαλμάτων που δίνουν εξηγήσεις με οδηγίες επίλυσης. Χρησιμοποιήστε Resume label κατά τη χρήση τέτοιων μηχανισμών.


      Sub Error_Handling
      try: On Error GoTo catch
          ' ο κώδικας της ρουτίνας πηγαίνει εδώ
          Error 91 ' παράδειγμα σφάλματος
      finally:
          ' ο κώδικας καθαρισμού της ρουτίνας πηγαίνει εδώ
          Exit Sub
      catch:
          Print Erl, Err, Error$
          Resume finally
      End Sub ' Error_Handling
    

Χρησιμοποιήστε Resume Next, παραδείγματος χάρη, κατά την αναφορά ανωμαλιών που συνέβησαν για επαναληπτική διαδικασία που δεν πρέπει να διακοπεί. Σε αυτήν την περίπτωση μπορεί να απαιτηθούν πολλαπλές ρουτίνες χειρισμού.


      Sub Iteration
          planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
      try:
          On Error GoTo ReportAndProcessNext
          For ndx = -3 To 11 Step 1
              MsgBox planets(ndx)
          Next
          On Error GoTo 0 ' Stop error catching
      finally:
          Exit Sub
      ReportAndProcessNext:
          Print "Error "& Err &" at line "& Erl &" - "& Error$
          Resume Next
      End Sub ' Iteration
    
warning

Χρησιμοποιώντας το Resume χωρίς παραμέτρους για επανεκτέλεση της εσφαλμένης οδηγίας μπορεί να ταιριάζει σε συγκεκριμένες καταστάσεις. Όμως, αυτό μπορεί να προκαλεί έναν ατέρμονα βρόχο.


Παρακαλούμε, υποστηρίξτε μας!