Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++ » Coding
Language: Visual Basic
Expertise: Intermediate
Sep 29, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Error Handling and Corrections

The following is an example to handle errors in VB. It combines "On Error GoTo" and "On Error Resume Next" to handle all errors (minor or serious ones), as well as attempting to correct errors. It is very similar to the "Try {} Catch {}" structure. For very obvious errors, you may not need this long and completed handling. Modify it accordingly.

Function MyFunc() As Boolean
    Dim bResult As Boolean
    On Error GoTo EHandler

' your codes


    Dim iResponse As Integer, lErr As Long
    Dim szErrSource As String, szErrDesc As String

    lErr = Err.Number
    If lErr <> 0 Then
        bResult = False
        ' You may modify following 2 lines to append
        ' detail information to error description & source.
        szErrDesc = Err.Description
        szsrouce = Err.Source
        ' Define function ErrCatch to handle error or 
        ' prompt user the information or 
        ' let user to make decision.
        iResponse = ErrCatch(lErr, szErrDesc, szErrSource)
        Select Case iResponse
            Case 0  'Resume or retry error code
            Case 1  'Resume Next or continue to next code
                Resume Next
            Case 2  'Failure or give-up this function call
            Case Else  'Raise error or stop my application
                ' cleanup
                If App.StartMode = vbSModeStandalone Then
                    ' End app
                Else ' Automation mode
				' Define your error numver, ie, 500, or 
				' to get it from ErrCatch
                    Err.Raise vbObjectError + 500, szErrSource, szErrDesc
                End If
        End Select
    End If
    MyFunc = bResult
End Function
Davis Chu
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date