c# - .NET 中的异常处理和日志记录策略

标签 c# .net asp.net exception-handling asp.net-mvc-3

我正在构建一个包含 ASP.NET MVC Web 应用程序的多层应用程序。它由表示层、业务层、数据层等常用层组成。如何创建/使用一种体面的异常处理机制?我在 Patterns and Practices 上读到,您需要将异常冒泡到各个层。

还有记录。记录发生在哪里?在 MVC 网络应用程序中?

您将如何根据错误类型重定向到各种错误页面?

如果你们有一些关于此的反馈和一些文章,我将不胜感激。如果有任何示例应用程序使用了不错的异常处理和日志记录策略,请告诉我:)

最佳答案

首先,我建议阅读 Vexing Exceptions 的文章“Eric Lippert ” .这应该为您提供一些关于异常处理(以及更多关于异常抛出)的合理指导。

当谈到异常日志记录时,最简单和最干净的方法是让一个“顶级”异常处理程序负责处理所有其他未处理的异常并将它们记录到日志中以供分析。这可以通过 HttpApplication.Error 在 ASP.NET 应用程序中完成您可以通过 Global.asax 文件连接到该事件。

如果应用程序的一部分正在捕获错误(捕获它)并以某种方式处理它,那么此时记录警告或信息可能是适当的,因此可以记录发生的问题,但系统已处理用它。尽量避免用这些填充您的代码,因为它们很快就会成为维护问题。

关于c# - .NET 中的异常处理和日志记录策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5192898/

相关文章:

c# - 我们如何将数据表的数据列的数据复制到另一个数据表?

.net - dotnet 核心中的枚举描述属性

.net - 将excel数据导入access

c# - ObjectContext 实例已被处理,不能再使用(ASP.NET MVC)

c# - 通过 C# 向 Lotus Notes 8.5 客户端发送约会邀请

c# - 如何轻松地为一段 C# 代码计时?

c# - 添加命名空间时出错

asp.net - 如何在不更改代码的情况下根据IP地址拒绝和允许访问某些路径/目录/文件?

C# 评估字符串不起作用

c# - 内联组合数组 - LINQ