【发布时间】:2014-06-26 10:29:45
【问题描述】:
我有以下代码:
try {
// do some stuff
}
catch(const my_exception_type& e) {
LOG("Exception %s", e.what());
throw;
}
问题是在调试版本中LOG 被定义为#define LOG(...) real_logger(...),但在发布版本中被定义为#define LOG(...) \\ do nothing。
当然,当我在 Visual Studio 中编译发布代码时,我会得到 warning C4101: 'e' : unreferenced local variable。
在不生成任何不必要的警告的情况下处理异常日志的最佳做法是什么?
附注
除了记录并重新抛出它之外,我没有对异常做任何事情。
【问题讨论】:
-
附带说明,这正是我的 g++/clang++ 编译器需要的行为,以便在我的静态分析工具将其检测为缺陷之前解决此问题......无论如何我启用的详细程度,他们不会警告我。
标签: c++ visual-studio c++11 visual-studio-2013