2014-02-26 30 views
4

所以我儘量讓有使用next modified code:如何在Inno安裝程序中捕獲OleObject異常?

 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; 

然而例外不會被逮住沒有互聯網連接POST請求,我得到我的設置應用程序的迷戀與下一幅圖像:

enter image description here

如何處理Inno Setup中的OleObject異常?

回答

7

您的代碼不完整,但try..except塊會捕獲所有異常,包括OLE對象拋出的異常。但是,您的屏幕截圖顯示了行號,引發異常的位置,因此您正在運行調試器。

和調試器顯示所有的異常信息,無論他們是在一個try..except塊,除非您取消「例外暫停」在Inno Setup的IDE設置選項:

enter image description here

默認情況下是啓用該選項(我建議保留),這意味着所有異常都會報告爲異常消息,這可能會誤導您。如果您在沒有附加調試器的情況下運行安裝程序,則不會看到該異常消息。

相關問題