
ich habe einen Taschenrechner programmiert, der mithilfe des fpExpressionParsers rechnet und möchte jetzt die Division durch Null abfangen.
Dafür habe ich mir folgendes gedacht:
(Das hier ist ein Teil des Except-Blocks:)
Code: Alles auswählen
on EDivByZero
do
begin
with Application do
begin
BoxStyle := MB_ICONASTERISK + MB_ICONHAND;
Reply := MessageBox('Division durch Null', 'Fehler', BoxStyle);
end;
Exit;
end;
Es kommt die >>External: SIGFPE<<-Nachricht und nachdem ich "Ok" gedrückt habe, kommt das Assemblerfenster.
Danach habe ich "Einzelschritt über die Anweisung gedrückt" und es kam der nächste Laufzeitfehler, diesmal aber konnte ich ihn mit "Diesen Ausnahmetyp übergehen" und "Fortsetzen" übergehen. Dann sollte das Programm eigentlich weiterlaufen, weil ich ja EDivByZero im Try-Except-Block behandle, aber es erschien wieder das Assemblerfenster. Auch nachdem ich das Programm beendet und ein zweites Mal gestartet habe, hat es nicht funktioniert...

Was muss ich tun?

Danke im Vorraus
Vincman
PS: Oder kann man den Fehler gar nicht abfangen?