Newsgroup: it.comp.lang.visual-basic
Titolo: Come posso gestire un errore in un ciclo senza bloccarlo?

Salve,
come da subject, come posso fare per gestire un errore in un ciclo
senza bloccarlo? Mi spiego meglio...Ho un ciclo, ad un certo punto
qualcosa al suo interno non va e mi segnala un errore, per riprendere
il proseguimento del ciclo come posso fare?
Saluti...

 ha scritto nel messaggio
news:3a461eb9...@news.libero.it...


 come posso fare per gestire un errore in un ciclo senza bloccarlo? Mi
spiego meglio...Ho un ciclo, ad un certo punto qualcosa al suo interno non
va e mi segnala un errore, per riprendere il proseguimento del ciclo come
posso fare?
' Intendi qualcosa del genere?
'
Option Explicit
Public Sub Main( _
)
  Const k As Integer = 3
  Dim i As Integer
  Dim d As Double
  On Error Resume Next
  For i = -9 To 9
    d = i / (i Mod k)
    Debug.Print i; " / ("; i; " Mod "; k; ") = ";
    With Err
      If .Number Then
        Debug.Print .Description
      Else
        Debug.Print d
      End If
      .Clear
    End With
  Next
  On Error GoTo 0
  ' <...>
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

>metti una msgbox
No, forse non mi sono spiegato...considera un codice simile:
Public Sub Pippo
   -----
   -----
   Do xxxxxxx
      -----
      -----   <----qui si genera un errore, io non voglio uscire dalla
                    Sub, ma beccarmi una segnalazione e proseguire il
                    ciclo Do
      -----
      -----
   Loop
   -----
   -----
End Sub

End Sub
Ciao, ho visto il tuo codice, ho provato ha metterlo nel mio ma...si
comporta in modo strano...se io scrivo una cosa come questa dentro la
mia sub, non mi vede più l' inizio del mio ciclo do (mi da errore:
loop senza do) e ancor prima mi da un altro errore (end with senza
with)?!?!?! L' unica cosa che io non ho messo "On Error GoTo 0", ma
non credo che sia questo a dargli fastidio.
La gstione dell' errore io prima la facevo fuori dal ciclo, dentro la
sub, dopo le variabili avevo messo un bel "On Error GoTo..." in questo
modo però mi interrompeva il ciclo quado trovava un errore. La logica
di quello che tu hai scritto l' ho capita...(a parte che non mi
funziona), ma ho due domande da farti.
1) "If .Number Then...." va messo dopo dell' istruzione che potrebbe
    generare l' errore? Ma non andrebbe prima?
2) "If .Number" è l' errore che si genera? Quella If è una cosa del
    tipo...se in err.number c'è un numero pari a un errore allora...l'
    interpretazione è giusta?
Saluti...

    interpretazione è giusta?
Tratto da MSDN: "Per determinare la causa di un errore, le routine di gestione degli errori si
basano sul valore della proprietà Number dell'oggetto Err. Una routine di gestione degli errori
dovrebbe verificare o salvare i valori rilevanti delle proprietà dell'oggetto Err prima che venga
generato un altro errore o prima che venga richiamata una routine che potrebbe generare un errore. I
valori delle proprietà dell'oggetto Err si riferiscono esclusivamente all'ultimo errore. Il
messaggio di errore associato a Err.Number è contenuto in Err.Description."
Semplicemente nella proprietà ".Number" dell'oggetto "Err" viene memorizzato il codice dell'errore
generato, così come nella proprietà ".Description" la sua descrizione.
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

Risolto tutto; funziona!! :)) Si era imppazito il vb :))
Grazie mille.