Delphi-Help

  • Увеличить размер шрифта
  • Default font size
  • Уменьшить размер шрифта
Статьи COM и DCOM Как обрабатывать ошибки в COM-объектах

Как обрабатывать ошибки в COM-объектах

Оценить
(0 голоса)

Как обрабатывать ошибки в COM-объектах

TCustomBasePlugObject = class(TAutoObject, IUnknown, IDispatch)
...
protected
function SafeCallException(ExceptObject: TObject; ExceptAddr:
  Pointer): {$IFDEF _D4_}HResult{$ELSE}Integer{$ENDIF}; override;
...
 
function TCustomBasePlugObject.SafeCallException;
var
  ExMsg: string;
begin
  Result := inherited SafeCallException(ExceptObject, ExceptAddr);
  try
    if ExceptObject is EAbort then
      exit;
    ExMsg := 'Exception: PlugObject="' if ExceptObject is Exception then
    begin
      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);
  except
  end;
end;
Login to post comments
Баннер

Счетчики

счетчик посещений
счетчик посещений