在测试我的代码(静态分析)以查看我是否尊重 misra c++ 2008 时,我收到以下错误
函数不会在所有路径上都返回值。
该功能看起来像
int* Dosomething(string v)
{
int* retvalue = NULL;
if( 0 == exists(v) )
{
throw("error: value doesn't exist");
}
else
{
retvalue = dosomecomputations(v);
}
return retvalue;
}
我真的需要抛出一个异常,因为根据错误调用者应该做一些事情。可能的错误列表可能很大,并且不仅仅是此代码示例中不存在该值。
我该如何管理它?我认为在这种情况下,我使用的工具不应将其视为对 misra 的不合规。
感谢您的意见。
罗尼。