piomode1 Geschrieben 11. Februar 2003 Geschrieben 11. Februar 2003 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! Zitieren
Klotzkopp Geschrieben 11. Februar 2003 Geschrieben 11. Februar 2003 Steht denn die Anweisung, die die Exception auslöst, überhaupt innerhalb des try-Blocks? Zitieren
piomode1 Geschrieben 11. Februar 2003 Autor Geschrieben 11. Februar 2003 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? Zitieren
Klotzkopp Geschrieben 11. Februar 2003 Geschrieben 11. Februar 2003 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. Zitieren
piomode1 Geschrieben 12. Februar 2003 Autor Geschrieben 12. Februar 2003 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!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.