This is a project I inherited. I noticed that sometimes it doesn't log errors.
This routine raises an error so that it can log it along with the rest of the message.
But it never returns to the error point and actually logs the error.
I can see what it is supposed to do, but I can't see how to get it to work.
Public Sub PostErrorToLog(lngErrID As Long, strContext As String, Optional strEvent As String)
    On Error GoTo ErrHandler:
    Dim strErrEvent As String
    Dim rst As New ADODB.Recordset
    Dim pass As Integer
    pass = 0
    
    'Capture event description by triggering the error.
    Err.Raise lngErrID  ' It gets to here, then jumps
    'Use AddNew because SQL may be added into strEvent, causing objSQL.RunADO() to fail.
        Set rst = objSQL.GetRST("PostErrorToLog()", "[System Log]", , , adCmdTable)
            rst.AddNew  ' Never gets here.
                rst![UID] = strCurrUID
                rst![ErrorID] = lngErrID
                rst![Source] = strContext
                rst![Event] = ConcatenateStrings(strErrEvent, strEvent, " ")
            rst.Update
        rst.Close
        FlushLog "Error"
    Exit Sub
ErrHandler:
    strErrEvent = Err.Description
    pass = pass + 1
    If pass > 2 Then   ' Seems like pass is always going to be 1
       Resume Next
    End If  ' It gets to here and exits the routine.
End Sub
 
    