Hallo,
mal nebenbei eine Frage zur Weitergabe von Exceptions aus DLLs an das aufrufende Programm.
Code in
DLL:
Delphi-Quellcode:
procedure FunktionAusDLL();
begin
raise exception.create('
Test-Exception!');
end;
Code in der Anwendung:
Fall 1:
Delphi-Quellcode:
try
FunktionAusDLL();
except
on e:
exception do
MessageDlg(e.
message, mtError, [mbCancel], 0);
end;
Fall 2:
FunktionAusDLL();
Im ersten Fall wird ganz normal die Fehlermeldung ("Test-
Exception!") angezeigt.
Im 2. Fall sollte diegleiche Meldung doch als MessageBox über Application.OnException angezeigt werden (sofern man die OnException-Methode nicht durch eine eigene ersetzt hat), oder?
Aber irgendwie kommt dann immer nur ein allgemeiner Fehler (z.B.
AV-Error etc.)
Deswegen habe ich bereits ein try..except-Konstrukt in der Art von Fall 1 benutzt mit einem zusätzl. exit im except-Teil, was ja eigentlich nicht sein sollte, da
imho die globale
Exception-Routine den gleichen Effekt haben sollte.
Weiß einer von euch, warum das so ist?
Gruß
Michael
P.S. Benutze den NexusDB Memory Manager.