Veröffentlicht 11. Februar 200322 j Hi, Leute! Problem eines Neulings: Ich arbeite mit einem Buch für den Borland C++ Builder 1 und der Software Borland C++ Builder 4.0 und bin bei try { } catch (...) { } steckengeblieben. Im Buch (für v1) steht, daß bei Verwendung von try/catch folgendes einzustellen ist, damit das Konstrukt greifen kann: Optionen | Umgebung | Bei Exceptions anhalten (Deaktivieren) Ich habe schon diverse Einstellungen in den Debugger-Optionen ausprobiert. Ohne Erfolg: Es erscheint bei fehlerhaften Eingaben nach wie vor eine System-MessageBox mit einer Fehlermeldung. Die vielen (mich überflutenden) Möglichkeiten in den Optionen sagen mir aber (noch) nichts. Wo finde ich den entsprechende Einstellung in der v4? :confused: Danke schon mal für Eure Hilfe!
11. Februar 200322 j Steht denn die Anweisung, die die Exception auslöst, überhaupt innerhalb des try-Blocks?
11. Februar 200322 j Autor Hi, Klotzkopp! Das ist ein weiteres Problem: In C++ bin ich blutigster Anfänger. Aber ich gebe nicht auf! Zu Deiner Frage: Ich glaube nicht (, daß der Excp.-Auslöser dort steht). Es sieht sinngem. folgendermaßen aus: ----- //Anfang try { if (x == 1) lblAusgabe -> Caption = "sehr gut"; 'u.s.w' if (x == 6) lblAusgabe -> Caption = "ungenügend"; } catch (...) { lblAusgabe -> Caption = "Falsche Eingabe"; } //Ende ----- (Der Code steht in der ButtonClick-Prozedur eines Buttons.) Wenn ich es so bedenke kommt es ja zu keinem Fehler im try-Block. Bei einer Eingabe kleiner 1 bzw. größer 6 ist zwar kein if erfüllt, aber: Dann eben nichts... Ich habe das try/catch auch als ein "else" verstanden: Wenn nichts im try-Block ausgeführt wird, dann kommt der catch-Block. ----- Aus: "C++ für Kids", Hans-Georg Schumann, mitp-Verlag Bonn, 2. Auflage S.92: "Ein bestimmter Abschnitt eines Programms wird (...) nur versuchsweise ausgeführt. Wenn es klappt, (...) gut. Wenn nicht, dann wird eine Aktion zur Fehlerbehandlung gestartet, die du selbst bestimmst." ----- Ein zu behandelnder Fehler ist z.B. die Eingabe von Buchstaben. Und da hatte ich gedacht, try/catch ist für solche Fälle gedacht... Wie komme ich weiter?
11. Februar 200322 j try/catch kann nur dann funktionieren, wenn die Exception auch innerhalb des try-Blocks auftritt. Wie sieht denn der Code für die Eingabe aus? Machst du irgendwelche Berechnungen? Es wäre auch hilfreich, wenn du den genauen Text der Exception-Meldung postest. Das kann die Fehlersuche erleichtern.
12. Februar 200322 j Autor Hi, Klotzkopp! Ich bin blind: Natürlich habe ich die Zeile vergessen, in der einer int-Variable das Ergebnis einer Division zugewiesen wird. Das Problem hat sich auch erledigt. Ich habe den Sinn und Zweck der try/catch-Anweisung jetzt ebenso verstanden. Ich mußte unter BBC++4.0 nur[/] folgendes deaktivieren: Integrierte Fehlerbehandlung zulassen (o.ä.) Dieser Threat kann geschlossen oder besser noch gelöscht werden... Vielen Dank für Deine Hilfe!!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.