引发异常并通知用户

本文关键字:通知 用户 异常 | 更新日期: 2023-09-27 18:30:31

我最近加入了一个正在进行中的 asp.net mvc项目,该项目在处理控制器中的异常方面没有太多一致性;一些开发人员将数据返回给客户端,让用户知道出了什么问题,其他人则将它们扔回去,以便他们到达处理和记录它们的服务器级处理程序 - 而不让用户知道发生了什么。

在我看来,很明显,这两种方法本身都是错误的,需要相互补充;我坚持的是如何做到这一点。我假设最终的异常处理程序/记录器可以在捕获特别讨厌的东西时将用户重定向到错误网页,但这会将机制限制为严重的东西。

我正在寻找一种同时进行"投掷"和"返回......"的方法。当我发现异常时,所以我对其进行排序并记录服务器端并获取数据客户端,让我告诉用户有一个打嗝。

我在 asp.net 方面的专业知识非常有限,虽然我相信我对 mvc 的理解足以让它不成问题,但这是一个"最佳实践是什么?"的问题来自与不太关心最佳实践的人一起工作的人。

引发异常并通知用户

有一个名为Elmah的好项目,用于记录 ASP.NET 应用程序中的错误和异常。你可以在这里找到它

ELMAH(错误记录模块和处理程序)是应用程序范围 完全可插拔的错误日志记录工具。它可以是 动态添加到正在运行的 ASP.NET Web 应用程序,甚至全部 在计算机上 ASP.NET Web 应用程序,无需 重新编译或重新部署。

一旦ELMAH被放入正在运行的Web应用程序中,并且 配置得当,您可以获得以下设施,而无需 更改一行代码:

  • 记录几乎所有未处理的异常。
  • 远程网页 查看重新编码的异常的完整日志。
  • 要远程查看的网页 任何一个记录的异常的完整详细信息,包括彩色堆栈 痕迹。
  • 在许多情况下,您可以查看原始黄屏 ASP.NET 给定异常产生的死亡,即使 自定义错误模式已关闭。
  • 每个错误的电子邮件通知位于 它发生的时间。
  • 日志中最后 15 个错误的 RSS 源。

我正在处理的 MVC 应用程序实现了Global.asax中的Application_Error来处理应用程序引发的异常,然后将用户重定向到标准错误页面。 错误页面的控制器处理日志记录,并显示有关错误的足够信息,以允许支持人员在系统中找到其会话并帮助解决任何问题。