[vb6 sp6] Error handling

Pagina: 1
Acties:

  • DPLuS
  • Registratie: April 2000
  • Niet online
Even een vraagje "just to be sure".
Ik kon het antwoord namelijk nergens zo letterlijk terugvinden in mijn MSDN:

- Mocht er in een procedure een error voorkomen, wordt die dan gereset op het moment dat exit sub of end sub optreedt?
M.a.w., moet ik daarna nog err.clear uitvoeren, of is dat onnodig?

  • Ashtaroth
  • Registratie: December 2003
  • Laatst online: 16-02 09:59
Error wordt niet gereset als je die error niet afvangt. De error bubbelt omhoog: als functie a een functie b aanroept en de error gebeurt in b, wordt de error aan functie a meegegeven en kun je je em hier alsnog afvangen.

E.e.a. is simpel te testen; open kort projectje en deel een getal door 0. Error zal niet verdwijnen.

  • DPLuS
  • Registratie: April 2000
  • Niet online
Met functies zou het inderdaad kunnen dat de error bewaard wordt.
Maar gebruikmakende van verschillende procedures niet.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Command1_Click()
On Error GoTo errhandler

    Dim i As String
    Dim k As Integer
    
    i = "a"
    k = i + 2
    
    MsgBox k
    Exit Sub

errhandler:

    MsgBox Err.Number & " " & Err.Description
    
End Sub

Private Sub Command2_Click()

    MsgBox Err.Number & " " & Err.Description

End Sub


Als je eerst op command1 klikt, krijgt err.number waarde "13": type mismatch.
Als je daarna op command2 klikt, krijg je geen error terug.
Ik vroeg me gewoon af of ik per definitie err.clear moet doen na afhandelen van een error...


[edit]

Aah, licht in de duisternis:
The Err object's properties are reset to zero or zero-length strings ("") after an Exit Sub, Exit Function, Exit Property or Resume Next statement within an error-handling routine. Using any form of the Resume statement outside of an error-handling routine will not reset the Err object's properties. The Clear method can be used to explicitly reset Err.
@mod: CloseTopic()

[ Voor 41% gewijzigd door DPLuS op 07-05-2004 14:23 ]