Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加异常信息或将此信息检查到类似于doxygen的注释的工具? 我一直在思考这个问题(实际上,几年),并且寻找处理C++异常的最佳方法。所以我想到了这个工具,它可以帮助我,所以我想问一下这个工具是否存在(我不能用谷歌搜索它) 此工具将解析C++源代码(头和源),并用异常信息填充DoXyGrlike注释(最好扩展我已经编写的方法本身的注释)。对于每个方法,异常列表都是从代码生成的——从每次出现“throw SomeException;”命令开始,从调用函数列表(注意递归)开始,从可能引发异常的已知命令开始(目前,我只能找到运算符new)。所以我可以跟踪所有异常,看看我是否忘记管理来自其他模块的异常,看看是否有从析构函数抛出异常的意外可能性(它禁止AFAIK)_C++_Exception_Exception Handling - Fatal编程技术网

添加异常信息或将此信息检查到类似于doxygen的注释的工具? 我一直在思考这个问题(实际上,几年),并且寻找处理C++异常的最佳方法。所以我想到了这个工具,它可以帮助我,所以我想问一下这个工具是否存在(我不能用谷歌搜索它) 此工具将解析C++源代码(头和源),并用异常信息填充DoXyGrlike注释(最好扩展我已经编写的方法本身的注释)。对于每个方法,异常列表都是从代码生成的——从每次出现“throw SomeException;”命令开始,从调用函数列表(注意递归)开始,从可能引发异常的已知命令开始(目前,我只能找到运算符new)。所以我可以跟踪所有异常,看看我是否忘记管理来自其他模块的异常,看看是否有从析构函数抛出异常的意外可能性(它禁止AFAIK)

添加异常信息或将此信息检查到类似于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

或者我可以使用类似的工具,它不会自动填充doxygen注释,但至少会警告我没有注释的注释。类似地,当我运行doxygen documentation generator时,我忘记了注释一个输入变量,而生成器会警告我这一点

那么,有这样的工具吗?如果不是,使用简单的库解析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();
}
这将:

  • 在foo1()注释中添加“@throw MyException”行

  • 发出警告:“文件中的foo1()…行…:抛出MyException,但不在注释中!”

  • 我知道C++语言提供了可能抛出异常的可能性,问题是编译时没有检查,但在运行时没有检查。我需要处理这个案例(如果我没记错的话,std::出乎意料)


    如果这个工具需要像doxygen一样手动运行,而不是每次编译时都运行,这不是问题。

    如果你的函数调用了某个库中的函数,而你没有源代码,那该怎么办?我在想是否有人问这个问题,我是否应该提前回答XD。在这种情况下,可能有很多种方法:使用该工具时,可以检测到一些“未知”(不是类名)异常、“所有”异常,或者只需要catch(…)块。最后一个也是以前案例的解决方案,尽管这是一个很好的解决方案,但在不访问代码的情况下使用库时,最终可能会出现一些意外的异常。此外,该工具还可以为此案例提供设置,以便准备异常列表,这些异常将自动应用于某些目录和/或目录中的所有函数(标题)文件。这将允许更好的异常跟踪,但我之前写的已经足够了…至少对我来说:3。此外,对于这样的库,有两种可能性:已知的文档化异常-然后可以解析和添加此信息,或者此信息没有文档化,工具必须假设“有”(同样,不是真正的类)无论如何都是例外。