大多数关于错误处理的建议都归结为一些技巧和窍门(例如,参见 this post)。这些提示很有帮助,但我认为它们并不能回答所有问题。我觉得我应该根据某种哲学来设计我的应用程序,这是一种为构建提供坚实基础的思想流派。关于错误处理的话题有这样的理论吗?
这里有几个实际问题:
- 如何决定错误应该在本地处理还是传播到更高级别的代码?
- 如何决定是记录错误还是将其作为错误消息显示给用户?
- 日志记录是否应该只在应用程序代码中完成?或者可以从库代码中进行一些日志记录。
- 如果出现异常,您应该一般在哪里捕获它们?在低级或高级代码中?
- 你是应该通过所有层的代码争取统一的错误处理策略,还是尝试开发一个能够适应各种错误处理策略的系统(以便能够处理来自 3rd 方库的错误) .
- 创建错误代码列表是否有意义?还是现在已经过时了?
在许多情况下,常识足以制定一个足够好的策略来处理错误情况。但是,我想知道是否有更正式/“学术”的方法?
PS:这是一个普遍的问题,但也欢迎 C++ 特定的答案(C++ 是我工作的主要编程语言)。
最佳答案
Is logging something that should only be done in application code? Or is it ok to do some logging from library code.
只是想对此发表评论。我的观点是永远不要直接在库代码中记录日志,而是在应用程序代码中提供 Hook 或回调来实现这一点,因此应用程序可以决定如何处理来自日志的输出(如果有的话)。
关于c++ - 错误处理理论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989819/