Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 5 zeigt keine Fehlermeldung an (https://www.delphipraxis.net/208645-delphi-5-zeigt-keine-fehlermeldung.html)

LikeMike 1. Sep 2021 17:36

Delphi 5 zeigt keine Fehlermeldung an
 
Hallo!
Das Thema gibt es schon im Forum - leider ohne Lösung, daher hier praktisch das gleiche Problem.
Ohne dass ich bewusst etwas geändert hätte, werden in meinem Programm keine Fehlermeldungen mehr angezeigt (in der compilierten Version).

Schon diese ganz einfache Procedure sollte ja direkt eine Division durch 0 melden - es geschieht aber nichts - nada:
Code:
procedure TFHaupt.Button4Click(Sender: TObject);
VAR
  a,b : INTEGER;
begin
  a:=6; b:=0;
  showmessage(inttostr(a DIV b));
end;
Beim Debuggen erscheint natürlich sofort eine Meldung, aber nicht in der compilierten Version.
Welchen Schalter könnte ich da erwischt haben (Delphi 5 Enterprise).

Danke im voraus
Mike

dummzeuch 1. Sep 2021 18:25

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Zitat:

Zitat von LikeMike (Beitrag 1494029)
Das Thema gibt es schon im Forum - leider ohne Lösung, daher hier praktisch das gleiche Problem.
Ohne dass ich bewusst etwas geändert hätte, werden in meinem Programm keine Fehlermeldungen mehr angezeigt (in der compilierten Version).

Schon diese ganz einfache Procedure sollte ja direkt eine Division durch 0 melden - es geschieht aber nichts - nada:
Code:
procedure TFHaupt.Button4Click(Sender: TObject);
VAR
  a,b : INTEGER;
begin
  a:=6; b:=0;
  showmessage(inttostr(a DIV b));
end;
Beim Debuggen erscheint natürlich sofort eine Meldung, aber nicht in der compilierten Version.
Welchen Schalter könnte ich da erwischt haben (Delphi 5 Enterprise).

Sowas kann theoretisch durch eine DLL hervorgerufen werden, die das Floating Point Control Word ändert.

http://www.nacad.ufrj.br/online/inte...ps_contw_f.htm

Das ist aber reine Spekulation. Wobei: Das ist ja eigentlich eine Integer-Operation, die die FPU gar nicht verwenden sollte.

LikeMike 1. Sep 2021 19:26

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Hallo!
Danke für die Antwort.
Aber es tritt gar keine Fehlermeldung auf. Ich habe bewusst Datenbankfehler einprogrammiert (Zugriff auf Felder, die gar nicht existieren) etc.
Es erscheint trotzdem nie eine Fehlermeldung.

Es muss irgendwas in meiner Hauptsoftware sein, denn wenn ich ein Testprogramm erstelle (z.B. nur mit der fehlerhaften Procedure oben) funktioniert alles, wie es soll.

Lemmy 1. Sep 2021 19:33

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Zitat:

Zitat von LikeMike (Beitrag 1494034)
Hallo!
Danke für die Antwort.
Aber es tritt gar keine Fehlermeldung auf. Ich habe bewusst Datenbankfehler einprogrammiert (Zugriff auf Felder, die gar nicht existieren) etc.
Es erscheint trotzdem nie eine Fehlermeldung.

Es muss irgendwas in meiner Hauptsoftware sein, denn wenn ich ein Testprogramm erstelle (z.B. nur mit der fehlerhaften Procedure oben) funktioniert alles, wie es soll.

Vollcompile schon mal gemacht? und sicher, dass du die korrekte Unit änderst und nicht zufällig ne Unit, die gar nicht Bestandteil des Projektes ist? Einfach mal QUatsch rein schreiben in die Unit.

LikeMike 1. Sep 2021 19:58

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Ja - alles mehrfach durchcompiliert. Wir reden hier allerdings von über 200 Units mit > 2.000.000 Programmierzeilen. Die Software wird ständig erweitert und ich weiß nicht, seit wann genau dieses Verhalten auftritt (keine Fehlermeldung ist ja vordergründig eine gute Nachricht).
Die Frage geht also eher in die Richtung wie man so ein Verhalten überhaupt provozieren könnte. Dann könnte ich vielleicht auf dem umgekehrten Weg Rückschlüsse auf den fehlerhaften Programmteil ziehen.

Der schöne Günther 1. Sep 2021 20:00

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Du kannst auch eine Release-Fassung im Debugger laufen lassen. Da sollte die Exception auch auftreten, richtig?

Die Frage ist ja, wie du explizit schreibst, dass sie dem Benutzer nicht angezeigt wird. Das kann man abstellen, indem man z.B. seinen eigenen (leeren) Exception-Handler in der VCL registriert, aber sowas macht man sicher nicht mal "aus Versehen". Aber so klingt es, denn der Benutzer hat in der Debug-Fassung ebenfalls keine Messagebox welche den Fehler anzeigt, richtig?

LikeMike 1. Sep 2021 20:06

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Wie lasse ich eine Release-Fassung im Debugger laufen?

Der schöne Günther 1. Sep 2021 20:28

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Ich hätte gesagt F9 drücken? Wenn du die Release-Fassung erstellen kannst, dann kannst du sie doch auch debuggen?

Aber sorry, Delphi 5 - Da kann ich nicht helfen. Als das raus kam bin ich noch in die Grundschule 👶 gegangen, und heute bin ich so alt dass ich keine Haare mehr auf dem Kopf habe. Das sollte einen auch mal zum Überlegen bringen, ob man nicht eh mal auf was neueres wechseln sollte - Da können dann vielleicht auch mehr Leute helfen 😉

LikeMike 1. Sep 2021 20:39

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Schon richtig, aber ich arbeite natürlich auch mit Delphi Sydney und fast allen Vorgängern, aber bei so einem verzahnten und umfangreichen System mit 100ten von Komponenten (die es teilweise gar nicht mehr in neueren Version zu kaufen gibt) bleibt mir nichts anderes übrig, als mit Delphi 5 weiter zu machen.
Aber nochmal zum Debuggen. Wenn ich mit F9 compiliere erhalte ich schon die Debugger-Fehlermeldung. Die Meldung, die dem Benutzer aber im Normalfall angezeigt würde, erscheint da aber eben auch nicht.

Der schöne Günther 1. Sep 2021 21:06

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Alles klar, dann hört sich das tatsächlich so an, als sei nur die Messagebox für den Benutzer vorm Bildschirm abgeschaltet.

Weise doch mal testweise das
Delphi-Quellcode:
OnException
-Event zu, wie hier in diesem Beispiel:
https://docwiki.embarcadero.com/Code...ption_(Delphi)

Dann wird doch hoffentlich was angezeigt, oder?

Delphi.Narium 1. Sep 2021 21:14

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Gibt es irgendwo in einer Unit eine Komponente TApplicationEvents?

Wenn ja: Der kann man beim Ereignis OnException eine Routine zuweisen, die bei jeder unbehandelten Exception aufgerufen wird.

Und wenn die dann (sinngemäß) so aussieht
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
begin
  //
end;
passiert genau das, was Du beschreibst.

Oder anders ausgedrückt:

Gibt es irgendwo eine zentrale Fehlerbehandlung im Programm, die leider keine Fehlermeldungen ausgibt, die Fehler eventuell loggen könnte, das Logging wurde aber andernorts deaktiviert, ...

Zugegeben: Wäre eher eine ziemlich schräge Konstellation, aber absolut auszuschließen ist sie nicht.

LikeMike 2. Sep 2021 09:20

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Vielen Dank!!! Das funktioniert!

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := AppException;
end;

procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
  Application.ShowException(E);
end;
Damit ist zwar der Fehler nicht gefunden, aber als Workaround reicht mir das!
Nochmals "Danke an alle"!

himitsu 2. Sep 2021 09:52

AW: Delphi 5 zeigt keine Fehlermeldung an
 
@Delphi.Narium: In D5 gab es das noch nicht.

Da konnte man sich nur direkt an Application hängen und mußte aufpassen, dass man sich nicht ausversehn versucht mehrmals anzuhängen und dabei was überschreibt/abhängt.

Rolf Frei 2. Sep 2021 19:11

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Hat dein Windows eventuell eine Debugerhandler akiv? Sowas wie DrWatson, der dann dies Systemexception abfängt und selber behandelt, wenn die Anwendung die Exception bis zum OS durchlässt.

Frickler 7. Sep 2021 08:52

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Zitat:

Zitat von himitsu (Beitrag 1494058)
@Delphi.Narium: In D5 gab es das noch nicht.

Doch klar. Auf der Registerkarte "Zusätzlich" das zweitletzte Icon :)

Bei Delphi 4 gab es das aber tatsächlich noch nicht.

dummzeuch 7. Sep 2021 12:34

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Zitat:

Zitat von himitsu (Beitrag 1494058)
@Delphi.Narium: In D5 gab es das noch nicht.

Da konnte man sich nur direkt an Application hängen und mußte aufpassen, dass man sich nicht ausversehn versucht mehrmals anzuhängen und dabei was überschreibt/abhängt.

Nee, das war noch früher. Delphi 5 hatte die Komponente schon.

Edit: Frickler war schneller

LikeMike 19. Sep 2021 14:44

AW: Delphi 5 zeigt keine Fehlermeldung an
 
Zitat:

Zitat von Rolf Frei (Beitrag 1494091)
Hat dein Windows eventuell eine Debugerhandler akiv? Sowas wie DrWatson, der dann dies Systemexception abfängt und selber behandelt, wenn die Anwendung die Exception bis zum OS durchlässt.

Nein - nichts dergleichen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz