Прежде всего, получите MZTools для Visual Basic 6 , это бесплатно и бесценно. Затем добавьте пользовательский обработчик ошибок для каждой функции (да, для каждой функции). Используемый нами обработчик ошибок выглядит примерно так:
On Error GoTo {PROCEDURE_NAME}_Error
{PROCEDURE_BODY}
On Error GoTo 0
Exit {PROCEDURE_TYPE}
{PROCEDURE_NAME}_Error:
LogError "Error " & Err.Number & " (" & Err.Description & ") in line " & Erl & _
", in procedure {PROCEDURE_NAME} of {MODULE_TYPE} {MODULE_NAME}"
Затем создайте функцию LogError, которая записывает ошибку на диск. Затем, перед тем как выпустить код, добавьте номера строк в каждую функцию (это также встроено в MZTools). Отныне вы будете знать из журналов ошибок все, что происходит. Если возможно, также загрузите журналы ошибок и фактически проверьте их в режиме реального времени с поля.
Это лучшее из того, что вы можете сделать для обработки неожиданных глобальных ошибок в VB6 (один из многих его недостатков), и в действительности это следует использовать только для поиска непредвиденных ошибок. Если вы знаете, что если есть вероятность возникновения ошибки в определенной ситуации, вы должны перехватить эту конкретную ошибку и обработать ее. Если вы знаете, что ошибка, возникающая в определенном разделе, приведет к нестабильности (файловый ввод-вывод, проблемы с памятью и т. Д.), Предупредите пользователя и узнайте, что вы находитесь в «неизвестном состоянии» и что «плохие вещи», вероятно, будут происходить. Очевидно, используйте дружественные условия, чтобы держать пользователя в курсе, но не пугаться.