繁体   English   中英

抛出异常并通知用户

[英]Throwing exceptions and notifying the user

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

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

我正在寻找一种方法,在我捕获到异常时同时执行“抛出”和“返回...”,所以我将它排序并记录在服务器端并获取数据客户端,让我告诉用户出现问题。

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

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

ELMAH(错误记录模块和处理程序)是一个应用程序范围的错误记录工具,完全可插入。 可以动态添加到一个正在运行的ASP.NET web应用,甚至是一台机器上的所有ASP.NET web应用,不需要重新编译或者重新部署。

将 ELMAH 放入正在运行的 web 应用程序并进行适当配置后,您无需更改一行代码即可获得以下功能:

  • 记录几乎所有未处理的异常。
  • 一个 web 页面,用于远程查看重新编码的异常的整个日志。
  • 一个 web 页面,用于远程查看任何一个记录的异常的完整详细信息,包括彩色堆栈跟踪。
  • 在许多情况下,您可以查看 ASP.NET 针对给定异常生成的原始黄屏死机,即使 customErrors 模式已关闭。
  • 每个错误发生时的电子邮件通知。
  • 日志中最后 15 个错误的 RSS 提要。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM