通过引用捕获异常
7.19 ID_catch_value
通过值捕获异常可能会导致“对象切片”,通过指针捕获异常会增加内存管理成本,通过引用捕获异常才是最合理的方式。
示例:
try {
....
} catch (Exception e) { // Non-compliant
....
}
例中 Exception 是异常类,用传值的方式捕获异常是不符合要求的。
应改为:
try {
....
} catch (Exception& e) { // Compliant
....
}
通过指针捕获异常也是不符合要求的,参见 ID_throwPointer。