Avatar billede mortenf Nybegynder
17. januar 2002 - 11:42 Der er 10 kommentarer og
3 løsninger

Error handling: Navn på funktion/procedure hvori fejl opstår

I forbindelse med en generel error handler har jeg brug for at finde navnet på den funktion/procedure hvori fejlen opstår.

Det kunne se ud som ex:


Private Sub Test()
   
    On Error GoTo Test_EH
   
    .... funktionens kode

   
    Exit Sub
   
Test_EH:
    MsgBox \'PROCEDURENS NAVN\' & vbCR & Err.Description

End Sub


Hvordan bestemmes \'PROCEDURENS NAVN*?
Avatar billede bennytordrup Nybegynder
17. januar 2002 - 11:46 #1
Du kan bruge en lokal variabel med procedurens navn. Ellers kender jeg ikke nogen.
Avatar billede bennytordrup Nybegynder
17. januar 2002 - 11:48 #2
Bortset fra det, så prøv at finde mztools. Den kan indsætte kodestumper, og derigennem kan den indsætte ting som procedurens navn, modulets navn osv. direkte som tekst.

mztools er et addin til VB.

www.mztools.com
Avatar billede kedde65 Praktikant
17. januar 2002 - 11:49 #3
Ja jeg ville have sagt en global variabel med procedurens navn. Dvs. en variabel su sætter i hver eneste procedure og funktion, og som du så udskriver i din error handler.

En lokal varial kan ikke bruges da det er til en global error handler.

Kedde
Avatar billede bennytordrup Nybegynder
17. januar 2002 - 11:50 #4
Kedde > Hvordan kan errorhandleren ovenfor være global?
Avatar billede mortenf Nybegynder
17. januar 2002 - 11:56 #5
Jeg kigger på mztools......

I bund og grund ville det være en løsning at have en global variabel, hvor denne blev sat til \'Procedurens navn\' i alle procedurer/funktioner..... men jeg håber på, at der er en lidt smartere metode.

Avatar billede terry Ekspert
17. januar 2002 - 12:38 #6
mortenf>In your comment to Thomas you say taht it IS NOT a general error routine, but her yousay it is, and thats maybe the reason for some of the answers you are getting.
If it IS NOT a general error routine then I would use your own example:

MsgBox \'PROCEDURENS NAVN\' & vbCR & Err.Description


or even replace the Procedure name with your own number system.
MsgBox \'ERROR 1001\' & vbCR & Err.Description


Avatar billede mortenf Nybegynder
17. januar 2002 - 12:42 #7
I mange af mine funktioner/procedurer vil jeg gerne have en error handler, der skriver fejlen til skærmen. Foruden fejlbeskrivelsen Err.Description skal der skrives hvilken funktion fejlen er opstået i (og optimalt også hvilket module fejlen er opstået i)
Avatar billede terry Ekspert
17. januar 2002 - 12:44 #8
but mortenf, IF it is NOT a general error routine, then you KNOW what module and function you are in and you program this into the message accordingly.

MsgBox \'ERROR in Module1 Function1\' & vbCR & Err.Description


Avatar billede mortenf Nybegynder
17. januar 2002 - 12:49 #9
Jeg har ret mange procedurer og ville derfor have en generel bekrivelse i dem alle. Indtil videre har jeg anvendt den samme måde som du har skrevet ovenfor, men det ville være lettere, hvis det ikke er nødvendigt at rette module og funktion navn hver gang, man opretter en ny procedure.... derfor søger jeg en generel beskrivelse af Module1 og Function1 i:
MsgBox \'ERROR in Module1 Function1\' & vbCR & Err.Description

Hvis det lykkes, kan jeg blot kopiere den generelle beskrivelse hver gang jeg starter en ny procedure/function.
Avatar billede nolle_k Nybegynder
17. januar 2002 - 14:23 #10
Det kan du ikke med mindre du køber et tredjeparts produkt, der kan det for dig eller også kan du lave noget selv!

Jeg har selv lavet et lille program der sætte Fejl Håndtering ind i hver Funktion og Property!

//Nolle_K
Avatar billede mortenf Nybegynder
17. januar 2002 - 16:29 #11
Nolle_K - sælger du dit program eller kan jeg få en kopi?
Avatar billede nolle_k Nybegynder
17. januar 2002 - 16:43 #12
Hvis jeg sælger det er det eddermanme dyrt!!

Avatar billede mortenf Nybegynder
17. januar 2002 - 16:46 #13
..... det vil da være fint nok, hvis jeg kan låne det ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester