> I en error-handler skal jeg gøre nogle ting der også kan forårsage fejl.
> Derfor har jeg en ny "on error goto label" men der bliver aldrig hoppet
> derned. Istedet bliver fejlen fanget et niveau længere ude
Jeg tror ikke jeg er helt med.
Du kan jo lave noget lokalt errorhandling:
Hvis du har een error handler kaldet errHandler, kan du gøre noget ala.
'Lokal errorHandling
.....
....
function ...()
on error goto errHandler
Dim lTest as long
'her kan der forkomme en fejl
on error resume next ' Slå funktions error handling fra
'Test:
lTest = "Hej mor "
if err.number <> 0 then
' lav errorhandling
...
'Ryd op:
err.clear
end if
on error goto errHandler 'Slå almindelig error handling til igen
exit function
errHandler:
err.raise err.number
end function
> Er det rigtigt nok at man ikke kan have errorhandlers inden i hinanden?
Ja - det kan man ikke - helligt område
Der må ikke opstå fejl i error handleren
Men man kan kalde en funktion i error handleren. Som fx:
errHandler:
LogEvent ( err ) 'Tilføj fejl til senere håndtereing <- eller whatever
> Stinker det af dårligt design at lave err.raise i sine cleanup funktioner,
> der i mit tilfælde bl.a. bliver kaldt under fejlhåndtering?
I mangel af at VB6 ikke har exceptions - what's a guy to do ?
(måske jeg tager fejl her ??)
Robert