В общем проблема действительно сложная.
Я написал собственный обработчик ошибок, и столкнулся с проблемой.
Если ошибка вызывается из потока либо из процедуры, которая запускается не из PluginProcess то все тип топ.
Если ошибку дает процедура, которую породила CommfortProcess вылетает что-то типо
Ошибка при обработке плагином сообщения с ID=5. Плагин остановлен.
Как избежать остановки плагина в таких ситуациях?
Как сделать, чтобы мой обработчик ошибок сам обработал исключение?
Пишу на Delphi, код обработчика прикреплю, если нужно.
Исключения в плагине.
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Исключения в плагине.
Стандартный try...except для блоков кода, в которых может возникнуть исключение. Например, весь код функции Plugin Process сделать таким:
Вообще, такой код на случай "где-то ошибка не поймалась", ловить их все же лучше ближе к месту возникновения.
Код: Выделить всё
procedure PluginProcess(dwMessageID : DWORD; bMessage : TBytes; dwMessageLength : DWORD);
begin
try
PluginProcessInternal(dwMessageID, bMessage, dwMessageLength);
except
on e: Exception do
ExHandler(e); // функция-обработчик
end;
end;
procedure PluginProcessInternal(dwMessageID : DWORD; bMessage : TBytes; dwMessageLength : DWORD);
begin
// Непосредственная обработка сообщения плагином
end;
Re: Исключения в плагине.
У меня проблема с юникодом, 7-ой делфи с ним не дружит, и поэтому процедура авторизации выносит ошибку. Хотелось бы знать что-то по существеннее, чем try... except
Re: Исключения в плагине.
Хотя такой код работает..
Спасибо =)
Спасибо =)