Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Exception abfangen und ausgeben funktioniert nicht (https://www.delphipraxis.net/164218-exception-abfangen-und-ausgeben-funktioniert-nicht.html)

Alex.G 3. Nov 2011 07:20

Delphi-Version: 7

Exception abfangen und ausgeben funktioniert nicht
 
Morgen!

Ich will mit einer try...except.. eine Exception abfangen und diese ausgeben.
Delphi-Quellcode:
on e:Exception do
  Application.MessageBox('Es trat ein Fehler auf:'+#10#13+e.Message, 'Fehler', 16);
Leider bekomme ich vom Compiler einen Fehler:
Code:
[Fehler] uOwnSql.pas(113): Inkompatible Typen: 'String' und 'PAnsiChar'
Was mache ich falsch?

DeddyH 3. Nov 2011 07:24

AW: Exception abfangen und ausgeben funktioniert nicht
 
Zitat:

Delphi-Quellcode:
function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;

Sobald Du konkatenierst wird der Wert automatisch als String angesehen. Also besser so:
Delphi-Quellcode:
on e:Exception do
  Application.MessageBox(PChar('Es trat ein Fehler auf:'+sLineBreak+e.Message), 'Fehler', 16);
[edit] Übrigens ist der Zeilenumbruch unter Windows #13#10. Nimm doch besser die Konstante sLineBreak, dann musst Du Dir um die Reihenfolge keine Gedanken machen. [/edit]

mkinzler 3. Nov 2011 07:25

AW: Exception abfangen und ausgeben funktioniert nicht
 
Delphi-Quellcode:
on e:Exception do
  Application.MessageBox(PChar('Es trat ein Fehler auf:'+sLineBreak+e.Message), 'Fehler', 16);

Alex.G 3. Nov 2011 07:27

AW: Exception abfangen und ausgeben funktioniert nicht
 
Super, funktioniert! Danke für die schnellen Antworten! :thumb:

DeddyH 3. Nov 2011 07:28

AW: Exception abfangen und ausgeben funktioniert nicht
 
Achja, und e.Message ist wohl auch ein String IIRC, von daher geht es sowieso nicht ohne Cast. Wozu eigentlich die 16 und nicht die dafür vorgesehene Konstante? Die würde den Code bedeutend lesbarer machen.


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