Я пытаюсь устранить бесконечный цикл, используя обработку исключений в моем коде, но не работает, может кто-то взглянуть на этот фрагмент и сказать мне, что я «Неправильно?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 }
Добавьте 'num = -9999;' в конец, но внутри, блок catch. Или просто распечатайте сообщение, в котором говорится, если вы хотите выйти из входа. -9999 – doug
Исключение попадает внутри цикла while, и выполнение просто продолжается. Если вы хотите, чтобы исключение прерывало цикл while, вы должны иметь try/catch вне цикла. Весь цикл 'while' должен находиться внутри блока' try'. –
Попробуйте и не используйте * магические числа *, как это. Что делать, если кому-то нужно добавить '-9999' к сумме? Вот что означает сигнал 'eof()'. – tadman