Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Borland Builder C++ 1.0 / 4.0: Bei Exceptions anhalten

Empfohlene Antworten

Veröffentlicht

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!

  • 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?

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.

  • Autor

Hi, Klotzkopp!

Ich bin blind:

Natürlich habe ich die Zeile vergessen, in der einer int-Variable das Ergebnis einer Division zugewiesen wird. :rolleyes:

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.