添加异常信息或将此信息检查到类似于doxygen的注释的工具? 我一直在思考这个问题(实际上,几年),并且寻找处理C++异常的最佳方法。所以我想到了这个工具,它可以帮助我,所以我想问一下这个工具是否存在(我不能用谷歌搜索它) 此工具将解析C++源代码(头和源),并用异常信息填充DoXyGrlike注释(最好扩展我已经编写的方法本身的注释)。对于每个方法,异常列表都是从代码生成的——从每次出现“throw SomeException;”命令开始,从调用函数列表(注意递归)开始,从可能引发异常的已知命令开始(目前,我只能找到运算符new)。所以我可以跟踪所有异常,看看我是否忘记管理来自其他模块的异常,看看是否有从析构函数抛出异常的意外可能性(它禁止AFAIK)
或者我可以使用类似的工具,它不会自动填充doxygen注释,但至少会警告我没有注释的注释。类似地,当我运行doxygen documentation generator时,我忘记了注释一个输入变量,而生成器会警告我这一点 那么,有这样的工具吗?如果不是,使用简单的库解析C++代码,这样我就可以很容易地为自己实现它吗? 例如:添加异常信息或将此信息检查到类似于doxygen的注释的工具? 我一直在思考这个问题(实际上,几年),并且寻找处理C++异常的最佳方法。所以我想到了这个工具,它可以帮助我,所以我想问一下这个工具是否存在(我不能用谷歌搜索它) 此工具将解析C++源代码(头和源),并用异常信息填充DoXyGrlike注释(最好扩展我已经编写的方法本身的注释)。对于每个方法,异常列表都是从代码生成的——从每次出现“throw SomeException;”命令开始,从调用函数列表(注意递归)开始,从可能引发异常的已知命令开始(目前,我只能找到运算符new)。所以我可以跟踪所有异常,看看我是否忘记管理来自其他模块的异常,看看是否有从析构函数抛出异常的意外可能性(它禁止AFAIK),c++,exception,exception-handling,C++,Exception,Exception Handling,或者我可以使用类似的工具,它不会自动填充doxygen注释,但至少会警告我没有注释的注释。类似地,当我运行doxygen documentation generator时,我忘记了注释一个输入变量,而生成器会警告我这一点 那么,有这样的工具吗?如果不是,使用简单的库解析C++代码,这样我就可以很容易地为自己实现它吗? 例如: //// Example.h //// /** * Does almost nothing. */ void foo1(); /** * Generates
//// Example.h ////
/**
* Does almost nothing.
*/
void foo1();
/**
* Generates some error.
*/
void foo2();
//// Example.cpp ////
#include "Example.h"
void foo1()
{
foo2();
}
void foo2()
{
throw MyException();
}
这将:
我知道C++语言提供了可能抛出异常的可能性,问题是编译时没有检查,但在运行时没有检查。我需要处理这个案例(如果我没记错的话,std::出乎意料)
如果这个工具需要像doxygen一样手动运行,而不是每次编译时都运行,这不是问题。如果你的函数调用了某个库中的函数,而你没有源代码,那该怎么办?我在想是否有人问这个问题,我是否应该提前回答XD。在这种情况下,可能有很多种方法:使用该工具时,可以检测到一些“未知”(不是类名)异常、“所有”异常,或者只需要catch(…)块。最后一个也是以前案例的解决方案,尽管这是一个很好的解决方案,但在不访问代码的情况下使用库时,最终可能会出现一些意外的异常。此外,该工具还可以为此案例提供设置,以便准备异常列表,这些异常将自动应用于某些目录和/或目录中的所有函数(标题)文件。这将允许更好的异常跟踪,但我之前写的已经足够了…至少对我来说:3。此外,对于这样的库,有两种可能性:已知的文档化异常-然后可以解析和添加此信息,或者此信息没有文档化,工具必须假设“有”(同样,不是真正的类)无论如何都是例外。