我们的代码对哪些例外情况有一定的指导方针
ad-hoc
--函数边界-- 用于在单个函数中处理罕见的错误情况,而其他流量控制方法是不切实际的,internal
--库边界-- 用于在库中的多个组件之间传达错误情况,external
--main
边界-- 用于跨库边界向外部代码传达错误情况。
为了确保编写的库/外部代码符合要求,我通过以下方式对异常传播进行了半自动分析:
- 过滤有趣
throw
的语句grep
, - 为每个未立即处理上述抛出异常的函数创建一个潜在的调用树(使用 Eclipse/CDT)
- 手动分析调用树并检查给定的异常是否最终在相关边界之前得到处理
我的问题是,是否有一个静态分析器可以做到这一点?