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

捕获所有异常的 catch(...) 子句应位于最后

9.6.4 ID_try_disorderedEllipsis
目录 › next › previous

如果 catch(...) 子句排在前面,其后面的 catch 子句会失去作用。

示例:

try {
    ....
} catch (...) {   // Non-compliant, disordered catch-all handler
    ....
} catch (E&) {   // Unreachable
    ....
}

应改为:

try {
    ....
} catch (E&) {
    ....
} catch (...) {   // Compliant
    ....
}

相关

ID_unreachableCode

依据

ISO/IEC 14882:2003 15.3(6) ISO/IEC 14882:2011 15.3(5) ISO/IEC 14882:2011 18.3(5)

参考

CWE-561 C++ Core Guidelines E.31 MISRA C++ 2008 15-3-7
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.