![]() |
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:
Beim Debuggen erscheint natürlich sofort eine Meldung, aber nicht in der compilierten Version.
procedure TFHaupt.Button4Click(Sender: TObject);
VAR a,b : INTEGER; begin a:=6; b:=0; showmessage(inttostr(a DIV b)); end; Welchen Schalter könnte ich da erwischt haben (Delphi 5 Enterprise). Danke im voraus Mike |
AW: Delphi 5 zeigt keine Fehlermeldung an
Zitat:
![]() Das ist aber reine Spekulation. Wobei: Das ist ja eigentlich eine Integer-Operation, die die FPU gar nicht verwenden sollte. |
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. |
AW: Delphi 5 zeigt keine Fehlermeldung an
Zitat:
|
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. |
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? |
AW: Delphi 5 zeigt keine Fehlermeldung an
Wie lasse ich eine Release-Fassung im Debugger laufen?
|
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 😉 |
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. |
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:
-Event zu, wie hier in diesem Beispiel:
OnException
![]() Dann wird doch hoffentlich was angezeigt, oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 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