Некорректный подъем исключений из ActiveX

alexgoldalexgold Москва
отредактировано 03:43 Раздел: FastScript
FastScript 1.8, Delphi 6.

Используется ActiveX библиотека, в которой есть объект с методом TestMethod:
function TTestObject.TestMethod(const par1: WideString): WideString;
begin
    ShowMessage('Передан параметр '+par1);
    raise Exception.Create('Тестовая ошибка');
    result := 'возврат';
end;
Код для вызова:
var x: Variant;
    ss: string;
begin
    x := CreateOleObject('TestLib.TestObject');
    ss := x.TestMethod('qqq');
    ShowMessage(ss);
end;
Если выполнить эту процедуру, скомпиленную в Delphi, то на вызове
ss := x.TestMethod('qqq') нормально генерится исключение с нормальным
текстом 'Тестовая ошибка'. Если же то же самое вызвать таким же кодом из
скрипта, то выскакивает сообщение:

OLE Error 80020009: TestMethod.

Как получить нормальное сообщение об ошибке?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.