0
私のコードで例外処理を使用して無限ループを排除しようとしていますが、そのコードが動作していない人がこのスニペットを見て、間違ってる?彼らが最初にスローされた場合C++どのようにwhileループで例外処理をして入力エラーを拾うのですか
void Addition(float num)
\t {
\t \t
\t \t cout<<"Please enter number you wish to add:"<<endl;
\t \t cin>>num;
\t \t
\t \t while(num!=-9999)
\t \t {
\t \t \t Sum+=num;
\t \t \t cout<<"Sum is:"<<Sum<<endl;
\t \t \t cout<<"Please enter number or enter -9999 to exit"<<endl;
\t \t \t try{
\t \t \t \t cin>>num;
\t \t \t }
\t \t \t catch(...)
\t \t \t {cout<<"ERROR"<<endl;
\t \t \t }
\t \t
\t \t \t
\t \t }
\t \t
\t \t
\t }
最後にcatchブロックの 'num = -9999;'を追加してください。または、終了するかどうかを示すメッセージを出力します。-9999 – doug
例外はwhileループ内で捕捉され、実行は単に続行されます。例外が 'while'ループを終了させたい場合は、try/catchをループ外に置かなければなりません。 'while'ループ全体は' try'ブロックの中になければなりません。 –
このような*マジックナンバー*を使わないでください。もし誰かが '-9999'を加算する必要があればどうしますか?これは 'eof()'シグナルのためのものです。 – tadman