Quote:
Originally Posted by Beni
Also ich weis ja nicht wo du Try/Catch gelernt hast? Wenn er in dem Catch Block keinen Ersatzwert angibt, gibts auch wieder ne Neue Exception? Wenns bei mir failed, catched er halt c=0? Wo ists Problem? Dann kann er ne If-funktion basetln die ihm ein "Fail-Bild" bei c=0 anzeigt? Ne extra Msg-Box bei jedem Bullshit ist einfach nur unnötig und nerfig.
€dit: [Da ich denke du wirst nichts kapieren:]
TRY zu deutsch; Probiere, heißt, dass er convertToInt32 PROBIEREN soll, wenn es NICHT geht, dann soll er die exception fangen(Catch) und c=0 setzen. An meinem Code ist nichts verwerflich.
|
Hallo dein c ist nur in dem TRY gültig. Geh mal weiter lernen bevor du mich verbessern willst. Und wenn ein try failt sollte man nicht versuchen derselben variable wieder was zuzuweisen, sondern wenn man z.b. eine Lib schreibt gleich neue Exception throwen und/oder nur "aufräumen" (wenn aufräumen bevor du ne exception raushaust ^^). Und wenn du in deinem catch nix neues throwst wird es auch keine neue Exception geben. Und ich glaube du kapierst den Sinn von try, catch und den Gültigkeitsbereich von Variablen nicht.
Ich kann das gerne auch noch einmal einfach erklären :
Du c in try deklarieren, du c nix nach try nutzen können.
Ich würd try und catch an deiner Stelle nochmal komplett neu lernen xD. Dabei kannst du dir auch gleich angucken wo Variablen gültig sind wenn sie an bestimmten Orten deklariert werden.
Kleines Beispiel für vernünftiges try und catch:
Code:
void f(){
try{
//something that might throw an exception
}
catch(std::exception& err){
if(can_handle_it_completly){
// handle it
}
else{
// do what can be done
throw; // rethrow it
}
}
}
So würde die Methode die f() aufruft nur informiert, wenn f() das selbst nicht handeln kann. Dann muss die aufrufende Methode halt gucken was zu tun ist und im Notfall einfach das Programm abbrechen.