日志代码应该抛出异常吗?

Mec*_*MK1 4 c# exception

我正在设计一个小型库,它应该有助于登录到不同的目的地(文件、数据库等)。但是,我不确定如果出现问题(例如无法写入文件)是否应该抛出异常?

\n\n

如果我抛出异常(与日志记录相关),使用我的库的应用程序开发人员可以清楚地看到日志记录没有按预期发生。另一方面,它可能是问题的另一个来源。

\n\n

如果我抑制异常并且只是悄悄地不记录日志,那么开发人员可能会错过重要信息(例如无法访问数据库)。

\n\n

对于如何解决这个问题,是否有任何建议、一般准则(如果是 a 那么 b 等)?

\n\n
\n\n

据我到目前为止所读到的:

\n\n

Microsoft 的例外指南指出:

\n\n
\n

\xe2\x9c\x97 没有可以根据某些选项抛出或不抛出的公共成员。

\n
\n\n

因此,选择是否抛出异常将违反这些准则,但如果不确定异常的可能性有多大,它们不会给出有关抛出异常的声明。

\n\n

我还在这个问题/答案中读到,我不应该捕获异常,因为我无法对它们做任何有意义的事情,但问题是针对企业级系统,而我的问题是在更一般的层面上提出的。

\n

Mik*_*kis 5

不要教条地遵循任何指导方针。查阅指南,然后采取您认为最能解决当前问题的方法。

记录器是一种特殊的软件:它有特殊的需求和注意事项。因此,Microsoft 发布的指南并不像适用于通用软件那样适用于您的记录器。

在我的书中,完全可以根据“Is-This-A-Development-Environment”标志来改变记录器的行为,并抛出异常 if true,或者抑制这些异常(可能将它们记录在一些不易出错的地方)中)否则。