Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto, <On error resume next> non "trappa" più gli errori!

Ciao a tutti,
sto riscontrando un effetto strano su alcuni PC. Ho una linea in VB (v6 SP4)
che potrebbe generare errore (un semplice errore runtime di VB), per cui è
preceduta da un "On error resume next". Ok, sul mio PC funziona
correttamente, su altri funziona pure.
Da un giorno all'altro, su alcuni pc VB mi dà l'errore proprio su quella
linea (e quindi termina l'applicazione) come se l'On error resume next non
avesse più effetto!
Non riesco proprio a trovare una soluzione, sul mio pc va tutto ok, solo su
alcuni da' errore...! L'unica cosa che mi viene in mente è un possibile
conflitto/sovrascrittura con qualche dll... Qualcuno ha riscontrato lo
stesso problema? Suggerimenti?
Grazie,
Paolo
-----
PS. Eliminare xxx per rispondermi in email!

 wrote in message
5A6m6.15350$Yx4.5...@news6.giganews.com...


 > sto riscontrando un effetto strano su alcuni PC. Ho una linea in VB (v6


preceduta da un "On error resume next". Ok, sul mio PC funziona
]zac[

 di fallimenti dell'on error.
E invece è proprio cosi'! Non è un GPF, ma un errore di VB (il n. 5 per la
precisione). Anch'io avrei detto che era impossibile (sono anni che lavoro
con VB) eppure è vero! L'On error c'è... ma non "trappa" niente!!! Conflitto
di DLL?
Grazie,
Paolo


Viene mica elaborata una stringa (con Mid$, ad esempio) nella gestione
dell' errore (magari per fornire un messaggio personalizzato) ?
In questo caso, l' errore vero sarebbe un' altro, ma siccome ti trovi una
stringa vuota la Mid$ fallisce con l'errore 5, che, non essendo gestito,
ti fa chiudere l' applicazione.
Ciao
Aldo


Grande hal...
Vero, probabilmente e' un double fault... Prova con questo codice di
gestione:
    On Error GoTo ErrorHandler
    ' ...Resto del codice
    Exit Sub '/Function
ErrorHandler:
    lErrCode=Err.Number
    sErrDesc=Err.Description
    sErrSource=Err.Source
    lLastDllError=Err.LastDllError
    lErrHelpCtx=Err.HelpContext
    sErrHelpFile=Err.HelpFile
    On Error GoTo TrapDblFault
    ' Codice di gestione personalizzato
    ' se qualcosa si rompe ora verra' trappato
    ' eventuale Resume se necessario, oppure
    Exit Sub '/Function
TrapDblFault:
    MsgBox "Double fault in error handling: " & Err.Description, vbCritical
    Exit Sub '/Function
End Sub '/Function
---
Ciaotutti,
Alessandro

dell' errore (magari per fornire un messaggio personalizzato) ?
[zac[

 vai avanti.
Questa volta mi sono risparmiato un post sulle corna (non dovrei averle,
spero...!!! :-)
Infatti non c'è alcuna gestione dell'errore, io do' il focus ad un controllo
(.Setfocus), se non riesco passa avanti e chissenefrega!
On Error Resume Next
Text1.Setfocus
...restodelcodice...
Però la storia del doppio errore mi ha fatto venire un dubbio. In qualche
altro controllo ho del codice associato al LostFocus (che verrebbe eseguito
quando il Text1 guadagna il focus). Se qui c'è un errore, è possibile che il
mio On Error Resume Next non me lo trappi? Se è così, perchè su alcuni PC va
e su altri no? E su quelli che adesso non va, prima andava...
Inoltre VB quando non ha un gestore di errori nella routine corrente
dovrebbe controllare a ritroso nella varie chiamate se ce n'è una attiva...
quindi - in linea teorica- il mio On Error Resume Next dovrebbe coprire
anche il LostFocus degli altri controlli...
Grazie,
Paolo

Grazie,
]zac[