3

我正在使用依赖注入实现 MVC 站点。我有可能会遇到错误的视图模型。我们认为将这些错误传达回相关控制器的最佳方式是抛出一些自定义异常。

我的问题:我想从一个公共基类派生这些异常,该基类将写入有关日志中发生的错误的信息。但是由于我们使用的是 DI,我们的日志对象是由我们的 IoC 容器构造和控制的。迄今为止,我们所有需要记录的对象都已由 IoC 容器构造和初始化。但这些异常将即时创建。

最常见的处理方法是什么?我可以看到如何创建一个 ExceptionFactory 类,将记录器注入其中,然后将其注入视图模型。但这似乎不太 IoC'ish。

是否有处理这种情况的常用习语?

4

2 回答 2

0

为此,您可以使用装饰器或拦截器。

日志记录或错误过滤器是横切关注点,在控制器中编写它们没有任何惩罚或任何错误。

此外,您仍然可以将它们注入任何您想要的东西。

一切都不必是国际奥委会的。只要它有效,它应该没问题。

于 2013-10-28T21:08:05.780 回答
0

我会回避让您的异常对象与记录器相结合。我可以看到一个异常对象知道如何格式化它的异常消息,但不记录它。

在上游捕获相关的异常并将其记录在那里。如果您的 IoC 容器支持它,您可以使用拦截来捕获和记录异常。我会提供一些链接,但您最好只使用 Google IoC 和拦截,然后根据您选择的框架决定您需要什么。

只是我的 0.02 美分,希望这会有所帮助。

于 2013-10-28T21:11:43.237 回答