Mi è capitato di dover fare una gestione errori in un'applicazione in modo da poter continuare il funzionamento senza però interrompere il processo.

Basandomi sulle mie conoscenze della gestione errori di VB6 (che ricorda un pò il basic del commodore 64) ho fatto una cosa fatta bene, precisa e concisa, pure un pò circoncisa

Allora, nonostante tutto continuavano ad escire degli errori, che oltretutto erano gestiti...

Teoricamente in caso di errore doveva analizzarlo, loggarlo e passare al ciclo successivo.

Invece cosa fa? Analizza l'errore, lo logga e rimanda al ciclo successivo solo la prima volta!

Se riesce l'errore lo caccia fuori come se non fosse stato gestito.

Non volendo crederci mi sono fatto questo progetto di test con il solo Form_Load:

codice:
Private Sub Form_Load()
Start:
    On Error GoTo Errore
    If Len("ciao") > 0 <> "" Then
        MsgBox "Ciao"
    End If
    On Error GoTo 0
Exit Sub
Errore:
    MsgBox "Errore"
    Err.Clear
    GoTo Start
End Sub
In teoria dovrebbe andare in loop, perché If Len("ciao") > 0 <> "" Then mi darà sempre errore e visto che nella gestione lo rimando a Start: è un rimbalzo fra procedura e gestione errori.

In pratica la prima volta mi entra in Errore: e mi esce la msgbox "Errore", la seconda volta l'errore invece me lo da a video...

Bello eh?

Avete suggerimenti?