переключаться между блоками if / else при ошибке - PullRequest
0 голосов
/ 09 марта 2012

Я ищу способ переключения между блоком if и else при возникновении ошибки.Например:

cout << "Enter 1 or 2 as your choice...";
cin >> choice;

if(choice==1) {

//do something here

//if error occurs....

} else if(choice==2) {

//switch to this else block

}

Я играл с try / throw / catch, но похоже, что catch должен следовать за оператором try.Любые идеи / предложения будут оценены!

Ответы [ 3 ]

2 голосов
/ 09 марта 2012

Когда я сталкиваюсь с этой ситуацией, я создаю отдельную функцию с кодом, который требуется в блоке else. Затем я вызываю функцию всякий раз, когда это необходимо (если возникает ошибка и в блоке else).

1 голос
/ 09 марта 2012

Вы действительно хотите разделить это на два разных условных блока. В конце концов, вы на самом деле не имеете в виду «еще».

if(choice==1) 
{  
//if error occurs....  
} 
if(choice==2 || error) 
{
  //switch to this block  
} 
1 голос
/ 09 марта 2012

Похоже, у вас просто не может быть "else":

int error = 0;

if( choice==1 ) {

    // Something happens
    error = 1;

}
if( error == 1 || choice == 2 ) {
    // Do things
}
...