AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Exception nachdem das Programm geschlossen ist.
Thema durchsuchen
Ansicht
Themen-Optionen

Exception nachdem das Programm geschlossen ist.

Ein Thema von Lun · begonnen am 3. Jan 2007 · letzter Beitrag vom 3. Jan 2007
Antwort Antwort
Benutzerbild von Lun
Lun

Registriert seit: 4. Feb 2006
122 Beiträge
 
Delphi 2005 Professional
 
#1

Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 08:22
Hallo zusammen,

erstmal ein Frohes neues Jahr !

Ich habe folgendes Problem, ich habe ein Programm das soweit durchläuft und keine Fehler aufweist. Wenn ich es kompeliert habe kann ich die exe auch ganz normal laufen lassen und beenden.

Allerdings wenn ich die Application in Delphi 2005 starte (F9) läuft diese auch einwandfrei, aber manchmal wenn ich dann auf beenden gehe innerhalb des Programms wird mir eine Exception angezeigt, die unterschiedlich ausfällt zwei Beispiele:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt tröt.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0000006E. Lesen von Adresse 0000006E' aufgetreten.
---------------------------

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt tröt.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00403C00 in Modul 'tröt.exe'. Lesen von Adresse 00000012' aufgetreten.
---------------------------


Die Exception wird nach dem Application.Terminate aufgerufen, aber wie gesagt auch nicht immer nur ab und an.
Woran kann das liegen, habe ich vielleicht Objecte nicht richtig freigegeben oder spinnt die IDE?

Ich habe mal Fastmm4 dazwischen gesetzt und habe das Gefühl das mir die Exception nicht angezeigt wird, oder unterdrückt Fastmm Exceptions und deswegen kommt diese nicht vor?

greetz Lun
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 08:29
Hast Du evtl. eine DB-Verbindung die nicht explizied geschlossen wird?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 08:42
Gibst du Objekte frei, die schon automatisch von dr VCL freigegeben wurden? Ohne etwas Code oder Informationen, was das Programm macht und was für zusätzliche Komponenten verwendet werden, kann man hier nur raten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#4

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 08:58
Mach es so wie ich es ist ganz einfach und du hast nie mehr fehler:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure Machnichts(Sender: TObject; E: Exception);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Machnichts(Sender: TObject; E: Exception);
begin
end;

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

end.
Im debugger kommt der Fehler noch aber dort kannst du einfach auf fortsetzen klicken oder ganz abschalten

Liebe Grüsse
Laufi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 09:03
Zitat von Laufi:
Mach es so wie ich es ist ganz einfach und du hast nie mehr fehler:
Ich würde mich aber bei meiner Autowerkstatt bedanken, wenn sie den Rost einfachnur überlackieren würden, anstatt ihn zu entfernen. Dass es zu einer Exception kommt ist doch wohl ein eindeutiges Zeichen dafür, dass im Code ein Fehler ist. Und hälst du es wirklich für eine gute Idee den Fehler zu vertuschen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Lun
Lun

Registriert seit: 4. Feb 2006
122 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 09:21
Hi @ll,

erstmal Thx für eure Antworten, sorry Laufi denke auch nicht das es im Sinne des Erfinder war es so zu lösen. Und sorry, das ich es verpeilt habe etwas code mitzugeben, aber ich war im Moment etwas Ratlos woher überhaupt die Exception kommt, da ich die vorher ja auch nicht hatte. Aber ich konnte das Problem jetzt etwas eingrenzen.

Ich denke das die Exception sich um zwei Hashpointer dreht, da ich meine Änderungen soweit zurück gedreht habe bis auf die Hashpointer, erst wenn ich die deklaration und definition bzw. das löschen auskommentiere, fällt die Exception weg.

Also die Zeile reichen aus um eine Exception aufzurufen, beim beenden.

Delphi-Quellcode:

_Dictionary : THashPointer;

_Dictionary := THashPointer.Create();

_Dictionary.clear
Ich denke ich mache am Schluss beim zerstören einen Fehler.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Exception nachdem das Programm geschlossen ist.

  Alt 3. Jan 2007, 09:28
Ich hatte mal ein ähnliches Problem. Auch der Effekt, dass mit FastMM keine Exception kam und ohne doch (oder andersrum), kommt mir bekannt vor.
Bei mir lag es (wie Luckie schon sagte) daran, dass ich einige VCL-Objekte selbst freigegeben habe und/oder Parents einzelner Controls auf andere Forms gesetzt habe und diese im Programmverlauf manchmal freigab. Behoben wurde es damit, dass ich die Objekte eben nicht selbst freigebe, sondern das der VCL überlasse.

Dass FastMM EInfluss auf das Auftreten hat, dürfte daran liegen, dass sich durch dessen Verwendung die zeitliche Reihenfolge der "Aufräumaktionen" evtl. etwas verändert.

Ich kenne THashPointer nicht, aber gibt man den nicht mit .Free frei?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz