首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBA WinHttpRequest上捕获超时

在VBA WinHttpRequest上捕获超时
EN

Stack Overflow用户
提问于 2019-04-30 19:57:58
回答 1查看 2.3K关注 0票数 1

我希望设置超时值并在此事件发生时使用VBA和Excel捕获此事件。到目前为止,我尝试了XMLHTTP60和WinHttpRequest:

代码语言:javascript
复制
    Set XMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    With XMLHTTP
        .setTimeouts 11, 11, 11, 11 'Values for testing to get a timeout
        '.setTimeouts TIMEOUT_LRESOLVE, TIMEOUT_LCONNECT, TIMEOUT_LSEND, TIMEOUT_LRECEIVE
        .Open "GET", currenturl, False
        .send
        '.waitForResponse 1 'testing
        If .responseText Like "*PATH_NOT_FOUND*" Or .responseText Like "*OUTSIDE_BOUNDS*" Then
            noroutefound = True
            GoTo skiploop
        End If
        str = Split(.responseText, "{""startTime"":")
        complstr = .responseText
    End With

但是,我无法捕获由超时或超时本身引起的错误。

我怎样才能赶上超时?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 20:57:35

在预期错误之前和errHand中添加On Error GoTo errHand的错误处理:

代码语言:javascript
复制
'Code
On Error GoTo errHand:
'Code producing error
Exit Sub
errHand

If err.Number <> 0 Then
     Debug.Print err.Message
End If
Exit Sub

如果您有感兴趣的错误号,则可以使用select case err.Number以定制的方式处理特定的错误,例如:

代码语言:javascript
复制
errHand:

Select Case Err.Number
    Case -2147012894 'Code for Timeout
        Msgbox "Timeout"
    Case -2147012891 'Code for Invalid URL
        Msgbox "Invalid URL"
    Case Else 'Add more Errorcodes here if wanted
        MsgBox "Errornumber: " & Err.Number & vbnewline & "Errordescription: " & Error(Err.Number)
End select
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55920463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档