PROGRAMMIAMO
VB - I File: gestione degli errori

Errori run-time e trapping degli errori

Se un file viene aperto For Input e non esiste, il VB produce un errore di esecuzione (Errore di run-time 53: impossibile trovare il file") e l'esecuzione del programma viene immediatamente interrotta.

In generale il VB assegna un codice numerico a tutte quelle condizioni di errore che determinano l'interruzione prematura dell'esecuzione di un programma. I principali errori relativi ai file sono:

- 53: File non trovato
- 61: Spazio su disco esaurito
- 64: Nome di file non valido
- 67: Troppi file aperti contemporaneamente

Naturalmente esistono anche condizioni di errore non associate ai file, come ad esempio:

- 6 : Divisione per zero

E' possibile evitare l'interruzione del programma in presenza di un errore run-time per mezzo dell'istruzione On Error. Questa istruzione attiva il trapping degli errori a partire dall'esecuzione dell'istruzione fino alla fine della subroutine o funzione corrente (il trapping può essere disabilitato anche con l'istruzione "On Error GoTo 0"). Di solito On Error viene usata insieme all'istruzione GoTo. Per esempio il seguente pezzo di programma visualizza una message box nel caso in cui il tentativo di apertura del file fallisca:

On Error GoTo errore_file

Open "dati.txt" For Input As #1

errore_file:
   MsgBox "Il file non esiste!"
   Exit Sub

 

Un'altra possibilità consiste nell'ignorare gli errori con l'istruzione:

On Error Resume Next

che, in caso di errore, riprende l'esecuzione dall'istruzione immediatamente successiva. Per esempio la funzione seguente controlla se un file esiste, tentando di aprirlo in lettura e gestendo quindi l'eventuale condizione di errore:

Function File_Esiste(nome As String) As Boolean

Dim num As Integer

num = FreeFile()

On Error Resume Next

Open nome For Input As #num

If Err.Number = 53 Then
   File_Esiste = False
Else
   File_Esiste = True
   Close #num
End If

End Function

Si osservi la variabile di sistema Err.Number che contiene il codice dell'ultimo errore run-time che si è verificato.

 

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it