☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

通过引用捕获异常

7.19 ID_catch_value
目录 › next › previous

通过值捕获异常可能会导致“对象切片”,通过指针捕获异常会增加内存管理成本,通过引用捕获异常才是最合理的方式。

示例:

try {
    ....
} catch (Exception e) {   // Non-compliant
    ....
}

例中 Exception 是异常类,用传值的方式捕获异常是不符合要求的。

应改为:

try {
    ....
} catch (Exception& e) {   // Compliant
    ....
}

通过指针捕获异常也是不符合要求的,参见 ID_throwPointer。

相关

ID_catch_slicing ID_throwPointer

参考

C++ Core Guidelines E.15 C++ Core Guidelines ES.63 MISRA C++ 2008 15-3-5 SEI CERT ERR61-CPP
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.