Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Text zu einer Fehlermeldung auslesen. (https://www.delphipraxis.net/106524-text-zu-einer-fehlermeldung-auslesen.html)

Garfield 12. Jan 2008 09:48


Text zu einer Fehlermeldung auslesen.
 
Der Debugger von Delphi gibt mir die Fehlermeldung:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt XY.exe ist eine Exception der Klasse EFCreateError aufgetreten. Meldung: 'Datei "d:\xy.ini" kann nicht erstellt werden. Zugriff verweigert'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Wenn ich den Fehler nicht abfange, bekomme ich die selbe Fehlermeldung in der Anwendung:
Code:
---------------------------
XY
---------------------------
Datei "d:\xy.ini" kann nicht erstellt werden. Zugriff verweigert.
---------------------------
OK  
---------------------------
Die INI wird beim Formclose geschrieben. Nach der Fehlermeldung kann die Anwendung nur über den Taskmanager geschlossen werden.

Fange ich den Fehler ab bekomme ich mit
Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
nur
Code:
---------------------------
XY
---------------------------
Zugriff verweigert
---------------------------
OK  
---------------------------
Wie kann den Fehler abfangen und die ganze Fehlermeldung anzeigen?

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

eddy 12. Jan 2008 10:01

Re: Text zu einer Meldermeldung auslesen.
 
Delphi-Quellcode:
var
  errcode : word;

begin

.....

  errcode := GetLastError;
  if errcode <> 0 then begin
    // Fehlercode auswerten
  end;

.....
end;

marabu 12. Jan 2008 10:17

Re: Text zu einer Meldermeldung auslesen.
 
Moin,

ich könnte mir vorstellen, dass so das gewünschte Ergebnis zustande kommt:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  try
    with TFileStream.Create('Y:\test.txt', fmCreate) do
      Free;
    ShowMessage('ok');
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
Grüße vom marabu

Garfield 12. Jan 2008 10:20

Re: Text zu einer Meldermeldung auslesen.
 
Zitat:

Zitat von marabu
ich könnte mir vorstellen, dass so das gewünschte Ergebnis zustande kommt:

:thumb: Genau das ist es. Habe einiges gefunden, aber immer nur den zweiten Satz erhalten. Danke!

Luckie 12. Jan 2008 11:48

Re: Text zu einer Fehlermeldung auslesen.
 
Der erste Satz ist aus der Exception, die geworfen wird und der zweite Satz ist die Windowsfehlermeldung, warum es fehlgeschlagen ist:

Delphi-Quellcode:
raise Exception.CreateFmt('Datei %s kann nicht erstellt werden. %s', [Filename, SysErrorMessage(GetLastError)];


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