Объявление: "Сдается рекламное место на сообщениях об ошибках. Microsoft".
TCustomBasePlugObject = class(TAutoObject, IUnknown, IDispatch)
...
protectedfunction SafeCallException(ExceptObject: TObject; ExceptAddr:
Pointer): {$IFDEF _D4_}HResult{$ELSE}Integer{$ENDIF}; override;
...
function TCustomBasePlugObject.SafeCallException;
var
ExMsg: string;
begin
Result := inherited SafeCallException(ExceptObject, ExceptAddr);
tryif ExceptObject is EAbort then
exit;
ExMsg := 'Exception: PlugObject="' if ExceptObject is Exception thenbegin
ExMsg := ExMsg + #13' Message: '#13' ' +
Exception(ExceptObject).Message +
#13' Module:' + GetModuleFileName +
#13' Adress:' + Format('%p', [ExceptAddr]);
if (ExceptObject is EOleSysError) and
(EOleSysError(ExceptObject).ErrorCode < 0) then
ExMsg := ExMsg + #13'
OleSysError.ErrorCode =
'+IntToStr(EOleSysError(ExceptObject).ErrorCode);
end;
toLog(ExMsg);
exceptend;
end;
Статья Как обрабатывать ошибки в COM-объектах раздела Технологии COM и DCOM может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.