Я работаю в команде поддержки одного унаследованного проекта VB6, который связан с сокетной связью. У нас есть одна проблема в обработке ошибок.
Ниже приведены компоненты этого приложения.
Основной процесс
Activex Exe process
Главный процесс создает объекты класса activex, вызывает функции и потребляет события (например, подключение к сокету, чтение и т. д. c) из этих объектов. Модуль формы основного процесса имеет обработчики ошибок во всех функциях.
Обработчик ошибок основного процесса выполняет следующие действия:
Журнал ошибок в файле
Показывать пользователю Msgbox (стиль vbcritical)
В классе ActiveX все функции имеют обработчики ошибок. Обработчик ошибок процесса ActiveX выполняет следующие действия:
Зарегистрируйте ошибку в файле
Увеличьте ошибку, используя Err.raise
Мы наблюдали, когда функция класса ActiveX вызывается из основного процесса, и возникает некоторая ошибка в exe-функции ActiveX отображается сообщение об ошибке во время выполнения из exe-файла activex, и процесс ActiveX завершается, даже если в функциях основного процесса присутствуют обработчики ошибок.
Что-то не так в конструкции обработчиков ошибок или обработчики ошибок в одном процессе не могут отлавливать ошибки, возникшие в другом процессе?