【发布时间】:2016-12-11 04:59:36
【问题描述】:
我正在用 C# 开发一个 Web 应用程序,并且我有一个特殊的异常类型,我需要从它的事件中获取完整的日志,当然我会处理它以向用户什么的。
问题是,在异常的构造函数中编写日志代码是一种好习惯吗?我问这个是因为我以前没有见过类似的东西。
提前致谢
【问题讨论】:
-
否;构造函数不应该有副作用。
-
我认为不会,因为日志记录本身能够引发异常,因此会变得非常复杂
-
异常是处理问题的最后一道防线。一旦您将其打开到有可能破坏的代码,这就会违背异常的目的。最好将它们分开。
-
恕我直言,这违反了单一责任原则。不要那样做。异常应该只负责抛出。
-
您如何看待这种方式:在本地处理后重新抛出异常,并在全局异常过滤器中捕获和记录?