2

我们的代码对哪些例外情况有一定的指导方针

  • ad-hoc--函数边界-- 用于在单个函数中处理罕见的错误情况,而其他流量控制方法是不切实际的,
  • internal--库边界-- 用于在库中的多个组件之间传达错误情况,
  • external--main边界-- 用于跨库边界向外部代码传达错误情况。

为了确保编写的库/外部代码符合要求,我通过以下方式对异常传播进行了半自动分析:

  1. 过滤有趣throw的语句grep
  2. 为每个未立即处理上述抛出异常的函数创建一个潜在的调用树(使用 Eclipse/CDT)
  3. 手动分析调用树并检查给定的异常是否最终在相关边界之前得到处理

我的问题是,是否有一个静态分析器可以做到这一点?

4

2 回答 2

1

我认为无论你怎么看,它都是定制的。不知道是否可以选择商业工具,但我相信Klocwork可能适合。

但这将涉及使用他们称之为 KAST 的东西。一种以 XPath 类型格式创建自定义规则的工具。很容易创建和强大。

然而,话虽如此,仅为此使用 Klocwork 是过分的。值得一看。

于 2013-05-29T13:19:51.990 回答
0

这似乎与 C++ 相关的异常分析工具

但是您对异常的捕获点感兴趣。就我的经验而言,静态分析器只会让您了解未捕获的异常。

于 2013-05-23T21:04:37.553 回答