gpt4 book ai didi

asp-classic - 如何正确报告/处理经典的 asp 页面错误和数据库错误

转载 作者:行者123 更新时间:2023-12-03 08:01:44 25 4
gpt4 key购买 nike

我一直在尝试为我们的经典 asp 网站创建错误处理路径。我现在已经搜索了 3 个小时的信息,即使在堆栈溢出时也没有找到太多信息。因此,如果您可以将我指向一个重复的伟大...尽管它必须存在,但我找不到任何东西。

我的计划如下...

  • 在存储过程中进行适当的错误处理。发生的任何错误都会插入到错误表中,并且还会返回给应用程序。
  • 在页面上设置“On error resume next”。然后检查 connection.errors 集合是否有错误。以及 Server.GetLastError() 属性。
  • 如果有任何重定向到页面以显示安全错误信息并将另一条记录插入另一个数据库表,以将发生错误的页面名称与上述数据库表中已经存在的数据库错误联系起来,以供以后调试。

  • 我创建了以下页面来开始测试。但是它不起作用。
    Dim cmd
    Set cmd = Server.CreateObject("ADODB.Command")
    cmd.ActiveConnection = con
    cmd.CommandType = adCmdStoredProc

    on error resume next

    cmd.CommandText = "spReturnDBException"
    cmd.CommandTimeout = 30 ' 2 minutes
    cmd.Execute


    dim objErr
    set objErr = Server.GetLastError()

    if objError.ASPCode <> 0 then

    response.write("ASPCode=" & objErr.ASPCode)
    response.write("")
    response.write("ASPDescription=" & objErr.ASPDescription)
    response.write("")
    response.write("Category=" & objErr.Category)
    response.write("")
    response.write("Column=" & objErr.Column)
    response.write("")
    response.write("Description=" & objErr.Description)
    response.write("")
    response.write("File=" & objErr.File)
    response.write("")
    response.write("Line=" & objErr.Line)
    response.write("")
    response.write("Number=" & objErr.Number)
    response.write("")
    response.write("Source=" & objErr.Source)

    else
    response.write("There's nothing wrong.")
    end if



    Dim objErr2
    for each objErr2 in objConn.Errors
    response.write("<p>")
    response.write("Description: ")
    response.write(objErr2.Description & "<br />")
    response.write("Help context: ")
    response.write(objErr2.HelpContext & "<br />")
    response.write("Help file: ")
    response.write(objErr2.HelpFile & "<br />")
    response.write("Native error: ")
    response.write(objErr2.NativeError & "<br />")
    response.write("Error number: ")
    response.write(objErr2.Number & "<br />")
    response.write("Error source: ")
    response.write(objErr2.Source & "<br />")
    response.write("SQL state: ")
    response.write(objErr2.SQLState & "<br />")
    response.write("</p>")
    next

    Free(cmd)
    Free(con)

    在存储过程中,我只是 RAISERROR( N'Lets throw an error because I want to!', 17, 0 );

    我每次得到的输出如下...

    ASPCode=ASPDescription=Category=Column=-1Description=File=Line=0Number=0Source=
    说明:帮助上下文:帮助文件: native 错误:错误号:错误来源:SQL 状态:

    为什么我没有收到关于 conn.Errors 循环的任何错误信息?

    解决。

    我为循环使用不同的连接对象循环连接。错误...复制粘贴错误。

    然而,在旁注中......我发现很难找到关于如何做我迄今为止所做的事情的信息。

    最佳答案

    关于asp-classic - 如何正确报告/处理经典的 asp 页面错误和数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8594190/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com