我正在设计一个小型库,它可以帮助登录到不同的目的地(文件,数据库等)。但是,如果出现错误(例如无法写入文件),我不确定是否应该抛出异常?应该记录代码抛出异常?
如果我抛出异常(与记录相关),使用我的库的应用程序开发人员可以清楚地看到记录不会按预期发生。另一方面,它可能是问题的另一个来源。
如果我压制例外而只是悄悄地不记录,开发者可能会错过重要的信息,例如,数据库无法到达。
是否有任何建议,一般准则(如果一个然后b等)如何处理这个?
正如我至今读:
Microsofts Guidelines for Exceptions状态:
✗没有公有成员,可以基于一些选项扔与否。
因此,选择是否抛出异常将违反这些准则,但如果不确定抛出异常的可能性有多大,它们不会发出抛出异常的声明。
我还在this question/answer中读到我不应该捕捉异常,因为我无法对它们做任何有意义的事情,但问题是针对企业级系统,而我的问题是在更一般的层面上提出的。
这似乎是一个设计决定。我不认为有一个绝对正确的答案。 – 2015-02-10 15:47:15
^同意。这对于https://programmers.stackexchange.com/来说似乎更合适,尽管它可能仍然不符合堆栈交换问题的一般要求,因为答案可能是有见地的。 – ajp15243 2015-02-10 15:47:56
一种可能性是将输出异常输出到“Trace”。他们可以使用你的库来正常登录,但他们可以选择配置'Trace',并且记录错误将写入文件或Windows事件日志中,这应该总是成功。 – 2015-02-10 15:49:46