Inno setup 未捕获Inno安装程序异常

Inno setup 未捕获Inno安装程序异常,inno-setup,winhttp,winhttprequest,Inno Setup,Winhttp,Winhttprequest,我正在使用具有不受信任的TLS(SSL)证书的域,以便调试某些内容 这是我的代码: 程序测试(); 变量 WinHttpReq:变体; 开始 WinHttpRequest:=CreateOleObject('WinHttp.WinHttpRequest.5.1'); 尝试 WinHttpReq.Open('POST','https://tv.eurosport.com/",假),; WinHttpReq.SetRequestHeader('Content-Type','application/j

我正在使用具有不受信任的TLS(SSL)证书的域,以便调试某些内容

这是我的代码:

程序测试();
变量
WinHttpReq:变体;
开始
WinHttpRequest:=CreateOleObject('WinHttp.WinHttpRequest.5.1');
尝试
WinHttpReq.Open('POST','https://tv.eurosport.com/",假),;
WinHttpReq.SetRequestHeader('Content-Type','application/json');
WinHttpReq.Send(“”);
除了
MsgBox(IntToStr(WinHttpReq.Status),mbError,MB_OK);
结束;
结束;
如果请求有错误,我想打印HTTP状态代码

问题是,
except
子句中的行从未执行,而是出现以下错误:

即使我在没有附加调试器的情况下运行可执行文件,它仍然会导致错误


如何在Inno安装程序中处理
OleObject
异常?

正如您所料,
WinHttpReq.Send
抛出

证书中的主机名无效或不匹配

该异常被
except
块捕获。
except
子句从未执行,这不是真的

块中,尝试读取
WinHttpReq.Status
(HTTP状态代码)。但是还没有HTTP状态代码,因为证书验证发生在任何HTTP交换之前。因此,第二个异常由
WinHttpReq.Status
getter引发:

WinHttp.WinHttpRequest:完成此操作所需的数据尚不可用


你没有任何处理程序。因此,Inno安装程序本身捕获异常并显示为“运行时错误”。

是否有任何方法可以在except子句中为证书错误指定状态代码?