Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rave - Exception wird von Delphi nicht behandelt (https://www.delphipraxis.net/54708-rave-exception-wird-von-delphi-nicht-behandelt.html)

Safti 10. Okt 2005 12:43


Rave - Exception wird von Delphi nicht behandelt
 
Hallo,

folgender Codeschnipsel:
Delphi-Quellcode:
...
try
   RvProject.Execute
except
   ShowMessage('fehler beim Erstellen des Dokuments!');
end;
Dann hab ich in meinem Ravereport einen Fehler eingebaut, der eine Zugriffsverletzung in verursacht (hab ein Event erstellt und ohne die Events neu zu kompilieren gespeichert, dann tritt grundsätzlich eine Zugriffsverletzung auf!).

Nach dem Execute und der Zugriffsverletzung springt Delphi in die übergeordnete procedure, ohne die Anweisung(en) im except-Block auszuführen.

Ist das Problem generell bekannt?

EDIT: Wie kann ich alternativ die Fehler behandeln?

Gruß Safti

shmia 10. Okt 2005 13:24

Re: Rave - Exception wird von Delphi nicht behandelt
 
Zitat:

Zitat von Safti
Dann hab ich in meinem Ravereport einen Fehler eingebaut, der eine Zugriffsverletzung in verursacht (hab ein Event erstellt und ohne die Events neu zu kompilieren gespeichert, dann tritt grundsätzlich eine Zugriffsverletzung auf!).

Das ist nicht der sicherste Weg, um Exception-Handling zu testen.
Ich würde hier eine Division durch 0 empfehlen.
Du solltest deinen Code so erweitern:
Delphi-Quellcode:
try
   RvProject.Execute
   ShowMessage('RvProject.Execute beendet');  // hinzu
except
   ShowMessage('fehler beim Erstellen des Dokuments!');
end;
Wenn nun die Zeile ShowMessage('RvProject.Execute beendet') erreicht wird, bedeutet das,
dass entweder 1.) keine Exception erzeugt wurde oder dass 2.) Ravereport intern die Excpetion schon behandelt hat.
Im 2. Fall hast du schlechte Karten. Du könntest nachschauen, ob Ravereport eventuell die Exception abfängt und dann ein OnError-Event erzeugt.

Der Report-Builder hat übrigens das gleiche Problem:
Er fängt Exceptions ab und zeigt dem Benutzer mit ShowMessage die Fehlermeldung an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 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