catch 子句不应为空
9.6.2 ID_catch_emptyBlock
空的 catch 子句仅捕获异常而未作任何处理,相当于掩盖了异常。
示例:
void foo() {
try {
....
}
catch (E&) // Non-compliant, empty catch-clause
{}
}
掩盖异常也可能会影响到程序其他方面的正常运行。
至少应添加日志记录等操作:
void foo() {
try {
....
}
catch (E&) {
log("messages"); // Compliant
}
}