コードをテスト (静的解析) して、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;
}
エラーに応じて呼び出し元が何かを行うため、本当に例外をスローする必要があります。考えられるエラーのリストは膨大になる可能性があり、このコード サンプルのように値が存在しないというだけではありません。
どうすれば管理できますか? この場合、私が使用しているツールはそれをミスラへの非準拠と見なすべきではないと思います。
アドバイスありがとうございます。
ロニー。