首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用clang-tidy查找所有未捕获的异常

使用clang-tidy查找所有未捕获的异常
EN

Stack Overflow用户
提问于 2021-11-18 01:07:24
回答 1查看 71关注 0票数 0

我想使用clang-tidy来找出所有未被直接或间接调用者捕获的异常,直到main,但此演示没有任何效果。一般来说,我想要清楚地报告cc函数抛出了一个异常,没有被main捕获,但它什么也没有报告,我想知道为什么&我该如何实现我的目标?非常感谢

main.cpp

代码语言:javascript
复制
#include <iostream>
int m = 0;
extern int cc() throw();

int ff() {
  if (m > 0) {
    throw "H";
  }
  return 1;
}

int gg() {
  if (m > 0) {
    return ff();
  } else {
    return 1;
  }
}


int main() {
  return cc();
}

cc.cpp

代码语言:javascript
复制
extern int m;
int cc() {
  if (m > 0) {
    return 1;
  }
  throw "D";
}

.clang-tidy

代码语言:javascript
复制
Checks: '-*,bugprone-exception-escape' 
CheckOptions: 
    - key: FunctionsThatShouldNotThrow
      value: main
HeaderFilterRegex: '.*' 

command

代码语言:javascript
复制
clang-tidy main.cpp cc.cpp
EN

回答 1

Stack Overflow用户

发布于 2021-11-19 08:14:49

  1. 发现clang-tidy不能检测跨文件检查。如果我连接两个cpp文件,clang-tidy可以识别未捕获的异常successfully.
  2. the配置文件,因为clang-tidy是错误的,CheckOptions中的key应该是bugprone-exception-escape.FunctionsThatShouldNotThrow而不是FunctionsThatShouldNotThrow
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70013401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档