Can throw-catch be used as substitute for goto?
Hi,
I know that the following is not what throw and catch were designed to
do, but is it not possible to use throw and catch as an alternative to
goto?
For example in the code below, method 1 breaks out of the double for
loop using the goto, whilst method 2 breaks out of the double for loop
using throw and catch.
What are your thoughts on this? Thanks.
Code:
#include <iostream>
using namespace std;
const int asize = 5;
int main(void)
{
//Method 1 - using goto to exit double for loop
for(int row = 0; row < asize; ++row){
for(int col = 0; col < asize; ++col){
cout<<"row = "<<row<<", col = "<<col<<endl;
if(row==2 && col==2){
goto escape;
}
}
}
escape :
cout<<"Finished method 1\n";
//Method 2 - using throw and catch to exit double for loop
int escape=0;
try{
for(int row = 0; row < asize; ++row){
for(int col = 0; col < asize; ++col){
cout<<"row = "<<row<<", col = "<<col<<endl;
if(row==2 && col==2){
throw escape;
}
}
}
}catch(int){}
cout<<"Finished method 2\n";
system("pause");
return(0);
}
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]