Collabora Office 24.04 Βοήθεια
Επαναφέρει τις πληροφορίες σφάλματος και δείχνει τι θα εκτελεστεί μετά.
Resume [ [0] | label | Next ]
0: Επαναφέρει τις πληροφορίες σφάλματος και επανεκτελεί την οδηγία που προκάλεσε το σφάλμα. Το 0 είναι προαιρετικό.
label: Επαναφέρει τις πληροφορίες σφάλματος και συνεχίζει στη συγκεκριμένη ετικέτα της τρέχουσας υπορουτίνας.
Next: Επαναφέρει τις πληροφορίες σφάλματος και εκτελεί την οδηγία ακολουθώντας αυτήν που προκάλεσε το σφάλμα.
Οι πληροφορίες σφάλματος είναι δομημένες με τις συναρτήσεις Erl, Err και Error$.
Erl: Αριθμός γραμμής αρθρώματος όπου εμφανίζει το σφάλμα.
Err: Αριθμός σφάλματος.
Error[$]: Περιγραφή σφάλματος.
Η χρήση της Συνέχισης για επαναφορά πληροφοριών σφάλματος αποτρέπει τη διάδοση της εξεταζόμενης κατάστασης στις καλούσες ρουτίνες.
Οι τυπικές ρουτίνες χειρισμού σφάλματος είναι: προειδοποίηση του χρήστη, διόρθωση του σφάλματος, καταγραφή πληροφοριών σφάλματος ή επαναποστολή προσαρμοσμένων σφαλμάτων που δίνουν εξηγήσεις με οδηγίες επίλυσης. Χρησιμοποιήστε 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
Χρησιμοποιώντας το Resume χωρίς παραμέτρους για επανεκτέλεση της εσφαλμένης οδηγίας μπορεί να ταιριάζει σε συγκεκριμένες καταστάσεις. Όμως, αυτό μπορεί να προκαλεί έναν ατέρμονα βρόχο.