exception handling

This commit is contained in:
Leaced 2017-04-14 16:35:00 +02:00
parent dea623fc97
commit 2a87562d50

View file

@ -14,6 +14,8 @@ void program();
int main() int main()
{ {
std::cout<< "Gib ein Limit ein: ";
program(); program();
std::cout << "\n\nProgrammende!"; std::cout << "\n\nProgrammende!";
@ -34,11 +36,11 @@ void program()
unsigned long long limit = 0; unsigned long long limit = 0;
std::string input; std::string input;
do{ do
std::cout<< "Gib ein Limit ein: "; {
getline(std::cin, input); getline(std::cin, input);
std::stringstream(input)>>limit; std::stringstream(input)>>limit;
if(limit>=ULLONG_MAX || limit<0) std::cerr << "Error: Dieses Limit ist nicht m\x94glich. "; if(limit>=ULLONG_MAX || limit<0) std::cerr << "Error: Dieses Limit ist nicht m\x94glich. Gib ein anderes Limit ein: ";
}while(limit>=ULLONG_MAX || limit<0); }while(limit>=ULLONG_MAX || limit<0);
try try
@ -57,8 +59,12 @@ void program()
} }
catch(std::bad_alloc& ba) catch(std::bad_alloc& ba)
{ {
std::cerr << "Error: Es konnte kein Array dieser Gr\x94\xE1 \be erstellt werden. "; std::cerr << "Error: Es konnte kein Array dieser Gr\x94\xE1 \be erstellt werden. Gib ein anderes Limit ein: ";
program();
}
catch(std::exception& e)
{
std::cerr << "Error: Beim Erstellen des Arrays ist ein unbekannter Fehler aufgetreten. Gib ein anderes Limit ein: ";
program(); program();
} }
} }