添加异常信息或将此信息检查为类似于doxygen的注释的工具?

时间:2012-06-23 12:25:12

标签: c++ exception exception-handling

我一直在考虑这个问题很长时间(实际上是几年)并且在C ++中搜索处理异常的最佳方法。所以我想到了工具,它可以帮助我,所以我想问一下这个工具是否存在(我不能谷歌)。

这个工具将解析C ++源代码(包括头文件和源代码),并用异常信息填充类似doxygen的注释(最好扩展我已经写过的关于方法本身的注释)。对于每个方法,异常列表将从代码生成 - 从每次出现“throw SomeException;”命令,从被调用函数列表(谨防递归)和已知命令可能抛出异常(目前,我只能使用new new)。所以我可以跟踪所有异常,看看我是否忘记管理来自其他模块的异常,看看是否有可能从析构函数中抛出异常(禁止AFAIK)。

或者我可以使用类似的工具,不会自动填写doxygen评论,但至少警告我没有评论。类似于我运行doxygen文档生成器时,我忘了注释一个输入变量,并且生成器警告我这个。

那么,有这样的工具吗?如果没有,是否有非常简单易用的库解析C ++代码,所以我可以轻松地为自己实现它?

示例:

//// Example.h ////

/**
  * Does almost nothing.
  */
void foo1();

/**
  * Generates some error.
  */
void foo2();

//// Example.cpp ////

#include "Example.h"

void foo1()
{
    foo2();
}

void foo2()
{
    throw MyException();
}

这会:

  1. 将“@throw MyException”行添加到foo1()注释。

  2. 发出警告:文件中的“foo1()...行...:抛出MyException,但不在评论中!”

  3. 我知道C ++语言提供了可能抛出异常的可能性,问题是在编译时没有检查,而是在运行时。我需要处理这种情况(如果我没记错的话,std ::意外)。

    如果需要手动运行此工具(如doxygen),而不是每次编译都不是问题。

0 个答案:

没有答案