/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Error-handling
Fra : Jesper Stocholm


Dato : 21-01-02 16:48

Jeg brruger i mine subs følgende error-handling:

private sub SomeSub(i as Integer ...)
On error goto Err
...
...
...
Exit Sub
Err:
Call ShowError
End Sub

ShowError er defineret i et module som:

Public Sub ShowError()
MsgBox "Error source = " & Err.Source & vbCrLf & _
"Error Description = " & Err.Description & vbCrLf & _
"Error number = " & Err.Number & vbCrLf, , appname & " Error"
End Sub

Mit problem er, at ovenstående ikke giver nogen information af, hvor
fejlen opstår i applikationen under den indledende kodning. Der kan fx
være en lang liste af funktioner, hvor en NULL-error foråsager en fejl
.... men det vil i dette tilfælde give nøjagtig samme fejl via denne
error-handler.

Er det ikke muligt at trække enten linienummeret for fejlen ud - eller
fx den specifikke sub/function, hvor fejlen sker ?

--
Jesper Stocholm
http://stocholm.dk

 
 
Frank Bertelsen (22-01-2002)
Kommentar
Fra : Frank Bertelsen


Dato : 22-01-02 15:35

Hej Jesper,

Du kan ikke få linjenummer eller funktionsnavn ud af Err objektet,
men du kan jo evt. selv overføre funktionsnavnet som en parameter
til din Fejlrutine:

Private Sub SomeSub()
On Error GoTo Err
...
...
Exit Sub
Err:
Call ShowError("SomeSub")
End Sub

Public Sub ShowError(SubName As String)
MsgBox "Error Sub = " & SubName & vbCrLf & _
"Error Source = " & Err.Source & vbCrLf & _
"Error Description = " & Err.Description & vbCrLf & _
"Error Number = " & Err.Number & vbCrLf, , appname & " Error"
End Sub


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Vestergaard (22-01-2002)
Kommentar
Fra : Vestergaard


Dato : 22-01-02 15:45

> Er det ikke muligt at trække enten linienummeret for fejlen ud - eller
> fx den specifikke sub/function, hvor fejlen sker ?

Hvis du kun skal bruge det i design time, og det skal du vel siden du vil
have linienummeret.
Du kan (indtil du har fundet de fejl du vil filnde i designtime) bruge On
Error Got 0 i din ShowError sub:
----------------------------------------------------
Public Sub ShowError()
On Error Goto 0
MsgBox "Error source = " & Err.Source & vbCrLf & _
"Error Description = " & Err.Description & vbCrLf & _
"Error number = " & Err.Number & vbCrLf, , appname & " Error"
End Sub
---------------------------------------------------------
NOTE: Den genoptager VB's errorhandling!

Når du så har fundet de fejl du vil finde kan du bare slette linjen igen...

Har jeg misforståået dig eller hjalp det??

Jacob V.



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste