From 2a87562d50a53458f7f3817166a12794c76f805a Mon Sep 17 00:00:00 2001 From: Leaced Date: Fri, 14 Apr 2017 16:35:00 +0200 Subject: [PATCH] exception handling --- Mathe/befreundete Zahlen.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Mathe/befreundete Zahlen.cpp b/Mathe/befreundete Zahlen.cpp index c49becc..474584d 100644 --- a/Mathe/befreundete Zahlen.cpp +++ b/Mathe/befreundete Zahlen.cpp @@ -14,6 +14,8 @@ void program(); int main() { + std::cout<< "Gib ein Limit ein: "; + program(); std::cout << "\n\nProgrammende!"; @@ -34,11 +36,11 @@ void program() unsigned long long limit = 0; std::string input; - do{ - std::cout<< "Gib ein Limit ein: "; + do + { getline(std::cin, input); 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); try @@ -57,8 +59,12 @@ void program() } 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(); } - }