未捕获 Inno Setup 异常
Inno Setup Exception is not caught
我正在使用具有不受信任的 TLS (SSL) 证书的域,因此我可以调试一些东西。
这是我的代码:
procedure test();
var
WinHttpReq: Variant;
begin
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
try
WinHttpReq.Open('POST', 'https://tv.eurosport.com/', False);
WinHttpReq.SetRequestHeader('Content-Type', 'application/json');
WinHttpReq.Send('');
except
MsgBox(IntToStr(WinHttpReq.Status), mbError, MB_OK);
end;
end;
如果请求出现错误,我想打印 HTTP 状态代码。
问题是 except
子句中的行从未执行,而是出现以下错误:
即使我 运行 没有附加调试器的可执行文件仍然会导致错误。
如何处理 Inno Setup 中的 OleObject
异常?
如您所料,WinHttpReq.Send
抛出
The host name in the certificate is invalid or does not match
该异常被您的 except
块捕获。 except
子句从未执行是不正确的!
在 except
块中,您尝试读取 WinHttpReq.Status
(HTTP 状态代码)。但是还没有 HTTP 状态代码,因为证书验证发生在 在 任何 HTTP 交换之前。所以第二个异常是由 WinHttpReq.Status
getter:
抛出的
WinHttp.WinHttpRequest: The data necessary to complete this operation is not yet available.
而且您没有任何处理程序。所以异常被 Inno Setup 本身捕获并显示为 "Runtime Error".
我正在使用具有不受信任的 TLS (SSL) 证书的域,因此我可以调试一些东西。
这是我的代码:
procedure test();
var
WinHttpReq: Variant;
begin
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
try
WinHttpReq.Open('POST', 'https://tv.eurosport.com/', False);
WinHttpReq.SetRequestHeader('Content-Type', 'application/json');
WinHttpReq.Send('');
except
MsgBox(IntToStr(WinHttpReq.Status), mbError, MB_OK);
end;
end;
如果请求出现错误,我想打印 HTTP 状态代码。
问题是 except
子句中的行从未执行,而是出现以下错误:
即使我 运行 没有附加调试器的可执行文件仍然会导致错误。
如何处理 Inno Setup 中的 OleObject
异常?
如您所料,WinHttpReq.Send
抛出
The host name in the certificate is invalid or does not match
该异常被您的 except
块捕获。 except
子句从未执行是不正确的!
在 except
块中,您尝试读取 WinHttpReq.Status
(HTTP 状态代码)。但是还没有 HTTP 状态代码,因为证书验证发生在 在 任何 HTTP 交换之前。所以第二个异常是由 WinHttpReq.Status
getter:
WinHttp.WinHttpRequest: The data necessary to complete this operation is not yet available.
而且您没有任何处理程序。所以异常被 Inno Setup 本身捕获并显示为 "Runtime Error".