У меня есть несколько строк кода, обернутых в два события записи журнала. Я знаю, что первая часть кода происходит, потому что я вижу первую запись в журнале, в которой говорится, что процесс запущен, но запись, в которой говорится, что завершенный процесс, не записывается. Где-то в коде выдается ошибка, но обработчик ошибок по какой-то причине не перехватывает ее. Я пытался проверить вьюер событий на наличие каких-либо журналов о моем приложении, которые, возможно, написали Windows, например, оно вызвало взлом sh или Windows по некоторым причинам, но там ничего нет. Есть ли способ, которым VB6 пропустил бы обработчик ошибок, и если так, как я мог бы найти доказательства этого?
Мой код выглядит примерно так:
On Error GoTo ErrorHandler
Dim fso As FileSystemObject
Dim DirPattern As String
Dim FileName As String
Dim DaysOld As Integer
' Init log name to ensure Today's value will be put in there
g_PurgeLogName = ""
Call WriteToLog("Purging of Text Files Started")
sql = "SELECT * FROM [Text File Purge Profiles] " & _
"WHERE User = '" & g_User & "' " & _
"ORDER BY ProfileName;"
Dim rs As ADODB.Recordset
Set rs = ic.RsReadOnly(cnMF, sql)
With rs
Do While Not .EOF
Set fso = New FileSystemObject
' create dirPattern to use with "Dir" command
DirPattern = fso.BuildPath(!PurgePath, !FileMask)
' get first file matching this pattern
FileName = Dir(DirPattern)
Do While Len(FileName)
FileName = fso.BuildPath(!PurgePath, FileName)
' how many days ago was this file created?
DaysOld = DateDiff("d", fso.GetFile(FileName).DateCreated, Now)
If DaysOld > !RetainDays Then
Debug.Print "Deleting " & FileName
fso.DeleteFile FileName, True
DoEvents
End If
' get next file matching this pattern
FileName = Dir
Loop
.MoveNext
Loop
.Close
End With
Call WriteToLog("Purging of Text Files Completed")
Set fso = Nothing
Set rs = Nothing
Exit Sub
'=============
ErrorHandler:
'=============
Call MsgBox2("An error occured while trying to process the Text File purge" & _
vbLf & vbLf & err.Number & ": " & err.Description, vbCritical)
Call WriteToLog("Text File Purge did not complete")
Call WriteToLog(vbTab & err.Number & ": " & err.Description)
Call ClearScreen
Call err.Clear
Я вижу, что там могут быть проблемы с удалением файлов, к которым у программы нет прав доступа, или что с запросом может быть проблема, но, насколько я могу судить, любые проблемы, которые могут возникнуть, должны обрабатываться обработчиком ошибок, а журнал еще больше текста, чем бит "процесс запущен".