2015-09-23 22 views
0

我有一个很大的C++程序。我发现一些函数可能会抛出异常,但另一些则不会。如果发生异常,程序会崩溃。所以,尝试抓住是有帮助的。但是功能太多了。有没有一种工具可以自动列出所有可能引发异常的功能?如果是这样,很多时间将被保存。用于检查所有C++函数是否在一个程序中抛出异常的工具

UPDATE

我怎样才能推动这一问题的程序员?这里是无关紧要的话题。

+0

如果您认为应该将“在每一个电话周围都要尝试......抓住。异常不会像返回值一样使用。 –

+0

遗憾的是,C++异常规范并不完全有用。 – SergeyA

+0

@SergeyA:在这种情况下,它是。没有声明'throw()'或'noexcept'的所有函数都可能会抛出异常。 –

回答

1

这是不可能的,因为你的回调/虚拟函数调用可能会在运行时被解析(即程序决定从潜在的无限列表中调用哪个函数函数基于它的输入),它可能会抛出异常或不。有可能将所有此类调用视为“可能投掷”,但在这种情况下,生产使用此类工具将是相当有问题的......

+0

“潜在的投掷”是你真正感兴趣的。这就是'noexcept'的全部目的,也是为什么异常规范在C++ 11中被弃用的原因。 –

+0

@ChristianHackl当我很惊讶为什么没有基于铿锵的工具呢... – anxieux

相关问题