Страница 1 из 1

Исключения в плагине.

Добавлено: 21:46, 28.12.2011
Dj Arktic
В общем проблема действительно сложная.
Я написал собственный обработчик ошибок, и столкнулся с проблемой.
Если ошибка вызывается из потока либо из процедуры, которая запускается не из PluginProcess то все тип топ.
Если ошибку дает процедура, которую породила CommfortProcess вылетает что-то типо
Ошибка при обработке плагином сообщения с ID=5. Плагин остановлен.
Как избежать остановки плагина в таких ситуациях?
Как сделать, чтобы мой обработчик ошибок сам обработал исключение?

Пишу на Delphi, код обработчика прикреплю, если нужно.

Re: Исключения в плагине.

Добавлено: 07:51, 29.12.2011
KGB
Стандартный 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: Исключения в плагине.

Добавлено: 09:49, 29.12.2011
Dj Arktic
У меня проблема с юникодом, 7-ой делфи с ним не дружит, и поэтому процедура авторизации выносит ошибку. Хотелось бы знать что-то по существеннее, чем try... except

Re: Исключения в плагине.

Добавлено: 00:58, 31.12.2011
Dj Arktic
Хотя такой код работает..
Спасибо =)