私はあなたの質問をcorectlyに理解していれば、あなた自身ののエラー報告者を求めています。
ケース1 - あなたはまだ「エラーレポーター」を作るためにreturnステートメントを使用したい::2つの独立したケースの2つのソリューションがあります
これを行うには、あなたは別の関数を作成する必要がありますか、単にgotoの使い方を学んでください。 0(偽)と1(真)
bool func()
{
if (acondition)
{
return (bool)0; // False (no error)
}
return (bool)1; // True (error)
// Note: I used (bool)0 and (bool)1 because it is
// more correct because your returning type is bool.
}
void errorcase(bool trueorfalse)
{
switch(trueorfalse)
{
case False:
... // your code (func() returned 0)
break;
default:
... // your code (func() returned 1)
break;
// Note that you will not need to check if an error occurred every time.
}
return;
}
int cmdfun()
{
... // your code
errorcase(func());
... // again - your code
return 0; // I suppouse that you will return 0...
}
しかし、私は後者の場合だと思います: - あなたの関数はブール値(ブール値)を返します - あなただけの2つの可能な結果を持っていることを意味しかし、あなたがする必要はありません。 (不幸にも、初心者として理解するのが難しく、最初の解決策はあなたのほうがはるかに簡単かもしれません):ケース2 - あなたはそれを何か他の方法で行うことに決めました。それはスローとキャッチを学ぶことです。 @Bathshebaがpreety goodと答えたので、私は答えを繰り返さない。
このケース用に設計された例外を使用しないのはなぜですか? –
@πάνταῥεῖfunc() - > cmdfun() - > main()のような呼び出しスタックの戻り値をカプセル化することでfunc()はmain()に直接ERRORを返すことができるので、復帰させる必要はありませんcmdfun()のERRORです。 – cdnszip
return__カプセル化できません代わりに前述の例外を使用してください。 –