gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:53:48 27 4
gpt4 key购买 nike

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

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

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

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


据我目前所读:

Microsofts Guidelines for Exceptions状态:

✗ DO NOT have public members that can either throw or not based on some option.

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

我还阅读了 this question/answer我不应该捕获异常,因为我不能对它们做任何有意义的事情,但问题是针对企业级系统,而我的问题是在更一般的层面上提出的。

最佳答案

不要教条地遵循任何准则。查阅指南,然后按照您认为最适合解决手头问题的方法进行操作。

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

在我的书中,根据“Is-This-A-Development-Environment”标志改变记录器的行为是完全没问题的,如果 true 则抛出异常,或者抑制这些异常(可能将它们记录在一些不易出错的介质中)否则。

关于c# - 日志代码应该抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28435800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com