相关疑难解决方法(0)

如何记录函数可能抛出的所有异常?

如果你有一个公共函数可能抛出一个异常,它使用其他(私有或公共)辅助函数也可以抛出异常,我认为你应该记录公共函数可以抛出的异常,这包括辅助函数抛出的异常.

像这样(使用Doxygen):

/** 
 * @throw Exception ...
 * @throw ExceptionThrownByHelper ...
 * @throw ExceptionThrownByHelpersHelper ...
 */
void theFunction() 
{ 
    helperWhichMayThrowException();
}
Run Code Online (Sandbox Code Playgroud)

并且helperWhichMayThrowException()还调用可能抛出异常的其他函数.

为此,您可以:

  1. 递归地跟随所有函数theFunction()调用并查找该函数所引发的异常.这是很多工作,当您向助手添加异常时,您可能忘记在某处记录异常.
  2. 捕获助手抛出的所有异常theFunction()并转换它们,这样您就可以确定只抛出您指定的异常.但那么为什么要使用例外?
  3. 不要担心辅助函数抛出的异常,但是你不能对所有异常进行单元测试,因为你不知道公共函数可以抛出哪些异常
  4. 有一些工具(半)自动列出助手抛出的所有异常等.我查看了Doxygen的文档,但没有找到办法做到这一点.

我想使用选项4,但我还没有找到一个好的解决方案,也许它可以用Doxygen吗?或许我只是想要记录多少???

编辑:也许它不是很清楚,但我正在寻找一种简单的方法来记录所有异常(最好使用Doxygen)函数可能抛出而无需手动检查所有辅助函数.一种简单的方法包括"不记录所有异常"或"捕获并转换所有异常theFunction()"

c++ documentation doxygen exception

26
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

documentation ×1

doxygen ×1

exception ×1