2016-07-04 11 views
0

ein Problem in Dev C++ Facing wobei der catch-Block nicht die gewünschte Fehlermeldung zeigtTry Catch-Block zeigt falsche Fehlermeldung

#include<iostream> 
using namespace std; 
void mightGoWrong() 
{ 
    bool error1; 
    bool error2; 
    if(error1) 
    { 
    throw "Issue encountered!!"; 
    }  
} 
int main(void) 
{ 
    try 
    { 
    mightGoWrong(); 
    } 
    catch(int e) 
    { 
    cout << "Error Code is: "<<e<<endl; 
    } 
    cout<<"Still running"<<endl; 

} 

Die Botschaft ist, erhalten: Still Running.Need zu wissen, was ich tue falsch

+0

Was passiert, wenn Sie 'bool error1 = true;' angeben? –

Antwort

0

Sie müssen Ihre boolesche Variable initialisieren, bevor der Code zu arbeiten beginnt.

Es wird empfohlen, Ihren Variablen immer einen Standardwert zuzuweisen. Dein error1-Wert hat keinen zugewiesenen Wert, deshalb wird der throw error nie seine Aufgabe beenden.

Auch Sie werfen eine Zeichenfolge, so dass Sie eine Zeichenfolge nicht ein int fangen müssen.

void mightGoWrong() 
{ 
    bool error1=true; 
    bool error2=true; 
    if(error1) 
    { 
     throw "Issue encountered!!"; 
    }  
} 
int main(void) 
{ 
    try 
    { 
    mightGoWrong(); 
    } 
    catch(string e) 
    { 
    cout << "Error Code is: "<<e<<endl; 
    } 
    cout<<"Still running"<<endl; 

}