Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Try-Except funktioniert nicht


Adrian - Fr 14.02.03 15:11
Titel: Try-Except funktioniert nicht
Hallo,
nach mehreren Stunden von "Try and Error" muß ich mich an euch wenden.
Der Beispielcode:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var
  Teiler, Reziprok : Real;
begin
  Teiler:=StrToFloat(Edit1.Text);
  try
    Reziprok:=1/Teiler;
    Edit1.Text:=FloatToStr(Reziprok);
  except
    Edit1.Text:='ungültige Operation!';
  end;
end;


Eigentlich sollte, wenn im Edit-Feld eine 0 eingegeben wird, die Meldung "ungültige Operation!" erscheinen. Bei tut's das nicht, Delphi mosert jedesmal die Teilung durch 0 an. Dafür brauch ich aber kein Try-Except. Mach ich was fasch? Wenn ja, was?


AndyB - Fr 14.02.03 15:15

Delphi meldet dem Programmierer immer jede Exception, ob selbst abgefangen oder nicht. Wenn du den Delphi-Dialog mit OK bestätigst und danach mit [F9] bzw. Start/Start das Programm weiter ausführst, so wird dein except-Teil ausgeführt.
Das Verhalten von Delphi kannst du im Menü Tools/Debugger-Optionen im Register "Sprach-Exceptions" mit der CheckBox "Bei Delphi-Exceptions stoppen" ein und ausschalten.


DaRkFiRe - Fr 14.02.03 17:55

Tjo - so schaut dat wohl aus! Versuch mal nur im Explorer die EXE anzuklicken und das Problem zu reproduzieren. Ich musste die gleiche Feststellung machen - die Delphi IDE meldet zu Debug-Zwecken immer eine Exception.


Delete - Fr 14.02.03 20:02

Kann man aber ausschalten.


DaRkFiRe - Fr 14.02.03 20:56

Mich stört's nich


Adrian - Mo 17.02.03 16:02
Titel: Debug-Meldung ausschalten
Hallo,

hat wunderbar geklappt, auch das Ausschalten habe ich mittlerweile gefunden.
"Mich stört's nich": Na ja, beim Originalprogramm lade ich eine Bitmap-Skala, auf der die Meßwerte als Kurven ausgegeben werden. Wenn dann die Exception-Meldung kam, hatte ich danach die Grafik nicht mehr. Das läßt sich zwar auch verhindern (irgendwie), ich mach's halt auf diese Art und Weise.

Gruß,

Adrian