xml*_*lmx 13 c++ logging coding-style exception-handling exception
我搜索了互联网,发现了很多关于这个主题的文章.但是,我发现没有完整的清单来验证我们的代码的异常安全质量.
所以,我想从你那里收集有价值的C++异常处理最佳实践.
我首先列出了我自己的一些做法:
在析构函数中捕获所有异常:
struct A
{
~A()
{
try
{
// Here may throw exceptions
}
catch (std::runtime_error& e)
{}
catch (...)
{
logging("...");
}
}
};
Run Code Online (Sandbox Code Playgroud)在异常信息中添加函数名,源文件名和行数.__func__,__FILE__并且__LINE__是好朋友.
切勿使用例外规格.原因在"C++编码标准"一书中给出.
你的是什么?
And*_*owl 15
我知道这可能更适合作为评论而非答案,但由于我链接的资源回答了你所有的问题以及更多问题,我认为将它作为答案发布也是可以的,只是为了给它更多可见性和/或相关性.
而且由于我不可能总结得比原来更好,我甚至不会尝试做一个简短的总结,因为我会冒险扭曲它或给出一个有偏见的概述.
请关注Jon Kalb关于异常安全编码的这个由两部分组成的演讲.而已.
| 归档时间: |
|
| 查看次数: |
16507 次 |
| 最近记录: |