【问题标题】:Error handling for ASP based sites and forms基于 ASP 的站点和表单的错误处理
【发布时间】:2011-02-21 09:11:10
【问题描述】:

我正在开发一个基于 ASP(不是 .net)的网站,它跨越大约 400 个页面...现在,整个网站都存在 ASP 和 VBScript 错误,例如:

Microsoft VBScript 运行时错误“800a000d”

类型不匹配:'Cdate'

/MySite/page.asp,第 71 行

(当我将字符放入“日期”字段时发生上述情况。在这种情况下我知道它的 VBScript,但我得到了很多。)

现在,我知道我可以通过客户端验证(例如 jQuery)避免这种情况,但是当这种情况发生时,我如何编写默认的“错误”页面?您遇到了错误,而不是向您显示上述内容,而是被重定向到一个通用的“错误”页面?

我查找了其中的一些内容,并找到了 ASP 'On Error Resume Next' 的内容,但我还没有找到任何可行的示例。每一个都是针对特定错误(比如 5 除以 0)量身定制的,我真的不想编写 400 多条潜在错误消息。

【问题讨论】:

    标签: asp-classic vbscript error-handling


    【解决方案1】:

    您可以通过 IIS 创建自定义错误页面。我不确定你正在运行什么版本,等等——但这应该会给你一个很好的起点。 http://support.microsoft.com/kb/224070

    【讨论】:

    • 嘿,谢谢您的回复...这已经足够好了,如果服务器抛出 http 错误,IIS 可以让我指向特定页面...现在,我需要去调试(又名 - 现在杀了我)vbscript 和验证错误... :-(
    【解决方案2】:

    您在页面顶部添加以下代码。

        <% on error resume next%>
    
    .
    ..
    ....
    

    (上面是其他代码,而不是point(.))

    然后你添加

    <% if err then
    response.redirect("err.page?code="&err.code)
    end if%>
    

    并且您根据错误编号在通用错误页面中定义错误消息。

    【讨论】:

      【解决方案3】:

      如果您向客户端提出相同的问题。您可以尝试捕获可能会抛出的代码时钟的代码块。

      例如

      <script language="text/javascript">
      try
        {
      //Code that will can throw error is here. 
        }
      catch(err)
        {
       document.href.location="genericerrorpage.asp?err=" + err.code;
      
      
        }
      }
      
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-21
        • 2016-06-22
        • 2011-03-03
        相关资源
        最近更新 更多