如何在Inno Setup中捕获OleObject异常?

Duc*_*een 4 winapi pascal ole inno-setup exception

所以我尝试使用下一个修改过的代码发出没有互联网连接的帖子请求:

      WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
      WinHttpReq.Open('POST', '<your_web_server>', false);
      WinHttpReq.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      try
        WinHttpReq.Send('data');
      except
           bla:= 'e';
      finally
           bla := 'f';
      end;
Run Code Online (Sandbox Code Playgroud)

然而异常并没有被抓住,我对下一张图片的设置应用程序感到迷恋:

在此输入图像描述

如何在Inno Setup中处理OleObject异常?

TLa*_*ama 7

您的代码不完整,但try..except阻止捕获所有异常,包括OLE对象抛出的异常.但是,您的屏幕截图显示了引发异常的行号,因此您运行的是调试器.

调试器显示所有异常消息,无论它们是否在try..except块中,除非您在Inno Setup IDE设置中取消选中"Pause on exceptions"选项:

在此输入图像描述

默认情况下启用此选项(我建议保留),这意味着所有异常都会报告为异常消息,这可能会误导您.如果您在没有附加调试器的情况下运行安装程序,则不会看到该异常消息.