Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Как обрабатывать ошибки _IECreate? (http://forum.oszone.net/showthread.php?t=191518)

Redisych 17-11-2010 21:48 1545208

Как обрабатывать ошибки _IECreate?
 
Скрипт работает с формами в веб браузере, продолжительное время. Иногда бывает, что соединение рвётся, или сервер лежит, или ещё какой-либо сбой. В общем,страница не загружается. Тогда скрипт останавливается на одном месте, видимо, не находя нужных элементов.
Нашёл вот такое описание:
Код:

Also, perhaps you ought to take a look into the _IECreate return values.. 
@Error: 0 ($_IEStatus_Success) = No Error
1 ($_IEStatus_GeneralError) = General Error
3 ($_IEStatus_InvalidDataType) = Invalid Data Type
4 ($_IEStatus_InvalidObjectType) = Invalid Object Type
6 ($_IEStatus_LoadWaitTimeout) = Load Wait Timeout
8 ($_IEStatus_AccessIsDenied) = Access Is Denied

Не пойму, как это использовать.

FlatX007 19-11-2010 12:11 1546308

Не уверен - может так.
Код:

#include <IE.au3>

Switch _IECreate ("www.autoitscript.com", 1)
    Case $_IEStatus_GeneralError
        MsgBox(0, Default, "General Error")
    Case $_IEStatus_InvalidDataType
        MsgBox(0, Default, "Invalid Data Type")
    Case $_IEStatus_InvalidObjectType
        MsgBox(0, Default, "Invalid Object Type")
    Case $_IEStatus_LoadWaitTimeout
        MsgBox(0, Default, "Load Wait Timeout")
    Case $_IEStatus_AccessIsDenied
        MsgBox(0, Default, "Access Is Denied")
EndSwitch


Redisych 19-11-2010 12:17 1546311

Я другой способ нашёл:
Код:

_IEErrorHandlerRegister ("MyErrFunc") ; Устанавливаем перехватчик COM-ошибок
 
; Программа

Func MyErrFunc()
  $ErrorScriptline = $oIEErrorHandler.scriptline
  $ErrorNumber = $oIEErrorHandler.number
  $ErrorNumberHex = Hex($oIEErrorHandler.number, 8)
  $ErrorDescription = StringStripWS($oIEErrorHandler.description, 2)
  $ErrorWinDescription = StringStripWS($oIEErrorHandler.WinDescription, 2)
  $ErrorSource = $oIEErrorHandler.Source
  $ErrorHelpFile = $oIEErrorHandler.HelpFile
  $ErrorHelpContext = $oIEErrorHandler.HelpContext
  $ErrorLastDllError = $oIEErrorHandler.LastDllError
TrayTip("Ошибка " & $ErrorNumber & " в строке " &  $ErrorScriptline, $ErrorDescription & @CRLF  & $ErrorWinDescription & ............................., 5, 3)
    ;SetError(1)
    Return
Endfunc



Время: 12:20.

Время: 12:20.
© OSzone.net 2001-