【问题标题】:Way to handle errors in your web application once it has entered productionWeb 应用程序投入生产后处理错误的方法
【发布时间】:2011-11-24 00:21:58
【问题描述】:

我的 Web 应用程序已经到了可以上线的阶段,我想到了以某种方式捕获用户遇到的应用程序错误并将它们转发给适当的支持。

目前,该站点当前捕获任何错误并重定向到错误页面。它还捕获了支持人员修复错误所需的所有数据。我们希望它做的是为用户提供以某种方式将错误详细信息发送给支持人员的功能。

目前我们想到的方法包括:

  • 只需将页面上的错误打印为文本供用户复制。
  • 提供将错误复制到剪贴板的按钮,以便他们粘贴到电子邮件中。
  • 提供帮助表单供用户填写,该表单将发送错误信息。
  • 提供“发送错误”按钮,该按钮将错误转发到配置的或用户输入的电子邮件地址。
  • 在页面加载时将错误详细信息存储在数据库表中,以供支持人员查看。

在我看来,这些都不是超级干净或直观的。有没有人想出一种独特而干净的方法来处理这种情况?

注意:我正在寻找一种解决方案来处理报告系统中生成的错误,而不是针对用户反馈的解决方案。

【问题讨论】:

    标签: web-applications error-handling


    【解决方案1】:

    如果您要显示用户需要的所有信息,为什么不将其登录到数据库或发送电子邮件给支持人员?这样您就不必担心用户有错误。将它们发送到您的“抱歉,请稍后再试”页面...

    【讨论】:

    • 另外,用户通常讨厌填写表单来报告错误。这个错误已经够烦人了。现在有一个@#$#@$ 表单要处理!
    【解决方案2】:

    您可以尝试将错误保存到数据库中的表中,但您还必须捕获数据库是错误来源的情况。

    我通常会将错误连同唯一代码 (GUID) 写入 Windows 错误日志。在用户看到的错误消息中包含 GUID,并让他们知道如果他们想询问错误或报告有关当时发生的事情的更多详细信息,可以联系您的支持团队。

    要写入错误日志,请调用System.Diagnostics.EventLog.WriteEntry()。编写工具来查询事件日志也很容易,可以通过编程方式或在命令行上使用 Log Parser 等工具。

    【讨论】:

      【解决方案3】:

      你可以看看插入UserVoice。它非常适合捕获用户反馈并且易于设置。

      【讨论】:

        【解决方案4】:

        如果可能,我建议为错误创建一个唯一 ID,并确保将其显示给用户,并记录在服务器日志中。这样,很容易将用户遇到的错误与您在后端登录的内容联系起来。

        请记住,查看导致错误的与该用户的整个交互集可能会很有趣,而不仅仅是最终的异常消息。

        【讨论】:

          【解决方案5】:

          考虑到您最后的粗体评论,我建议您使用错误记录。您没有提及您正在使用哪种语言,但如果您使用的是 java,您可以声明您的错误页面(例如<%@ page errorPage="error.jsp" %>)并查看处理了哪些异常。这对于预期的错误很有效,但可能会出现意外错误。

          【讨论】:

            【解决方案6】:

            作为 Web 开发人员,我们拥有胖客户端开发通常没有的一项简单优势。我们有能力从顶层捕获所有错误并优雅地处理它们。

            所以我们应该:

            1. 有一种方法可以自动知道何时发生错误

            这不是很好吗:

            1. 发生错误时接收包含错误详细信息的自动电子邮件
            2. 获取有关错误的描述性信息
            3. 了解代码中发生错误的位置
            4. 记录用户、ip、所有表单信息等信息
            5. 从一个错误处理页面处理多个应用程序和网站
            6. 向用户提供参考编号和友好消息
            7. 防止不法分子危害您的网站。防止关键信息泄露

            带有错误代码的摘要:

            400      Bad Request
            401;1    Unauthorized - Login Failed
            401;2    Unauthorized - Login failed due to server configuration
            404      Not Found
            500      Internal Server Error
            500;12   Internal Server Error - Application Restarting
            500;13   Internal Server Error - Server Too Busy
            500;15   Internal Server Error - Direct Requests For Global.asa
            500;100  Internal Server Error - language (ASP,PHP ,JSP) Error
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-08-19
              • 1970-01-01
              相关资源
              最近更新 更多