14. december 1999 - 09:57Der er
9 kommentarer og 1 løsning
Fange errors, hvordan???
Jeg vil først lige sortere dem fra der vil fortælle mig at jeg kan lave en on error goto errorHandler, for det kender jeg til hudløshed.
Men jeg har nu et større projekt liggende og jeg har lavet et modul der kan rette fejl og give en bedre fejlmeddelelse, mit problem er så at jeg skal alle funktioner m.m. for at lave en on error goto... for at det virker. Er der en der ved om man kan fange disse fejl og derved omdiregere til denne fejlfunktionsbehandler. Jeg har fedtet lidt med callWindowProc men kan ikke få den til det, er der en der kender en smart måde?
Mener du at du vil fange de forskellige fejlkoder og identificere dem udfra fejlkoden ? F.eks. fejlkode 286 = kunne ikke etablere forbindelse til linket ?
Kender kun til run-time error checking i C++ og Java, men der er der nogle simple "kodeord"... prøv at søge på try og catch i VB's online help... hvis de er der, kan du bruge det til at fange de fejl der måtte opstå...
Jeg har lavet et modul der laver en messagebox der fortæller err.number + err.description + err.source + screen.activeform + screen.activecontrol m.m. Og derefter laver den en err.clear og går videre hvor den slap. Jeg sorterer også enkelte fejlmeddelelser fra som jeg ikke mener er væsentlige. Det var så meningen at alle fejl skulle sendes igennem dette modul!
Jeg har lavet en foreløbig løsning der ser sådan ud:
Sub ErrHandlerStarter() If AlreadyStarted = True Then Exit Sub AlreadyStarted = True StopErrHandler = False On Error Resume Next Do While StopErrHandler = False If Err.Number > 0 Then StartErrHandler "" 'Kører fejlroutinen Err.Clear Else DoEvents End If Loop AlreadyStarted = False StopErrHandler = True End Sub
Så skal man et givent sted aktivere denne loop ved at skrive ErrHandlerStarter og stoppe den ved at skrive StopErrHandler = True I alle functioner m.m. skal man så bare skrive on error resume next, og loopen vil så fange fejlen for en.
Den løsning jeg kom til sidst er lidt dum den optager en masse unødig resurser, hvis der er en der har en god ide hører jeg enormt meget gerne fra dig, jeg vil gerne forærre flere point hvis det kan hjælpe.
Jeg kan ikke lige udtænke en konkret løsning... men hvis du kigger i hjælpen efter WithEvents/RaiseEvent, så får du måske selv får en lys ide..? f.eks: a) Lav en klasse til fejlhåndtering, som du erklærer globalt, withevents. b) Ved fejl laver du Raiseevent i din errorhandler. ...noget i den stil må kunne bringes til at virke. Men selve on-error-goto kan du næppe undgå. Dit eget forslag fra 15-12-99 08:39:50 er sådan set OK. Det er jo "kun" fejlhåndtering, hvor smart behøver det være? ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.