Il sistema di gestione degli errori consente ad una macro di gestire errori di run-time e gestire operazioni o messaggi per l'utente. Un errore di run-time potrebbe essere una divisione per zero non prevista, la mancanza di un foglio o di un file, un valore inserito errato dall'utente, ecc.
Per prima cosa un breve riassunto dei metododi e oggetti per le gestione degli errori per chi ha già dimestichezza con i concetti.
Funzione/oggetto | Descrizione |
---|
On Error Resume Next | Ignora l'errore e prosegue |
On Error Goto Etichetta | In caso di errore viene eseguito il codice dopo Etichetta: |
On Error Goto 0 | Riattiva la normale gestione degli errori (finestra debug) |
On Error Goto -1 | Azzera la gestione degli errori |
|
Resume | L'esecuzione riprende dalla stessa posizione che ha generato l'errore |
Resume Next | L'esecuzione riprende dalla riga successiva a quella che ha generato l'errore |
Resume Etichetta | L'esecuzione riprende dalla riga dopo Etichetta: |
|
Err | Oggetto che contiene il dettaglio delle informazioni quando viene generato un errore |
Err.Number | Il numero dell'errore |
Err.Description | La descrizione dell'errore |
|
On Error GoTo
On Error Resume Next
Consente di proseguire l'esecuzione malgrado l'errore con l'istruzione immediatamente successiva a quella che ha generato l'errore; questo consente di inserire la gestione dell'errore direttamente nel codice invece di trasferire il controllo ad altro punto della routine.
E' possibile verificare se l'oggetto è stato assegnato oppure se Err.Number è diverso da 0; nell'esempio qui stotto viene verificato se è stato possibile creare l'oggetto Outlook prima di inviare la mail.
Oggetto Err
Quando viene generato un errore nell'oggetto Err vengono memorizzate le informazioni del codice e descrizione dell'errore.
Alcuni degli errori di run-time più comuni:
Codice | Errore |
---|
6 | Overflow |
9 | Indice non incluso nell'intervallo |
11 | Divisione per zero |
13 | Tipo non corrispondente |
53 | Impossibile trovare il file |
68 | Periferica non disponibile (drive non esistente) |
75 | Errore di accesso al percorso/file |
76 | Impossibile trovare il percorso |
91 | Variabile oggetto o variabile del blocco With non impostata |
424 | Necessario oggetto |
1024 | Errore definito dall'applicazione o dall'oggetto |
|