【问题标题】:On Error Goto throws errorOn Error Goto 抛出错误
【发布时间】:2012-11-07 08:13:31
【问题描述】:

关于On Error Goto x 没有捕获所有错误等有类似的问题,但我遇到了不同的问题。

我的(经典 ASP)页面大部分时间都可以正常工作。一些用户抱怨页面错误,还不能复制。

我尝试了错误处理,但On Error Resume Next 对这种情况没有帮助,On Error Goto 导致页面无法工作并不断抛出错误(看起来像 500,但这可能是因为处理 IIS 正在做在背景中)。如果标签存在与否,无论我写Goto 0 还是Goto [label] 都会发生这种情况。

这可能是什么原因?

【问题讨论】:

    标签: asp-classic error-handling


    【解决方案1】:

    On Error GoTo label 在 ASP 中不受支持

    您使用

    开始一个错误捕获块

    On Error Resume Next,

    检查Err.Number是否发生错误,

    使用

    关闭块

    On Error GoTo 0

    See this docthis thread

    【讨论】:

    • 所以,我需要在每个可能的问题之后If Err.Number <> 0。如果我错过其中一个,希望一切顺利......
    • 并且记得在出现问题后清除 Err 对象,如果您想继续,稍后再检查!
    【解决方案2】:

    尝试使用 On Error Resume Next 捕获每个错误在较大的 ASP 页面中是不切实际的。

    将 IIS 配置为在收到状态代码 500 时使用自定义错误页面。格式化以下内容以适应...

    Set objASPError = Server.GetLastError
    
    response.write "Category: " & objASPError.Category & _
     "ASPCode: " & objASPError.ASPCode & _
     "Number: " & objASPError.Number & _
     "ASPDescription: " & objASPError.ASPDescription & _
     "Description: " & objASPError.Description & _
     "Source: " & objASPError.Source
    

    【讨论】:

    • 由于某种原因,它通常最终没有数据
    • 一些不错的包含页面,其中包含一个名为 Catch 的 Function/Sub,这是一种非常好的方法。例如。 Sub Catch(errNumberExpected, friendlyError, bTerminateExecution, sOptionalRedirect) etc... On Error Resume Next ' Your code Catch 0, "Something went wrong when processing the submission", True, "Home.asp"
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多