我在网上搜索了很多关于这个主题的文章。但是,我发现没有完整的 list 来验证我们的代码的异常安全质量。
所以,我想从您那里收集有值(value)的 C++ 异常处理最佳实践。
我先列出一些我自己的做法:
在析构函数中捕获所有异常:
struct A { ~A() { try { // Here may throw exceptions } catch (std::runtime_error& e) {} catch (...) { logging("..."); } } };
在异常信息中添加函数名、源文件名和行号。
__func__
、__FILE__
和__LINE__
是好 friend 。永远不要使用异常规范。原因在《C++编码标准》一书中给出。
你的是什么?
最佳答案
我知道这可能更适合作为评论而不是作为答案,但由于我链接的资源回答了您的所有问题和更多,我认为它也可以将其发布为答案,只是为了使其更具可见性和/或相关性。
而且由于我不可能比原作更好地总结它,我什至不会尝试做一个简短的总结,因为我会冒着扭曲它或给出有偏见的概述的风险。
看看这个 two-part talk on exception-safe coding by Jon Kalb 。就是这样。
关于c++ - C++ 异常处理的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14589525/