Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Exceptions in ConsolenApplication (https://www.delphipraxis.net/21594-exceptions-consolenapplication.html)

GuenterS 5. Mai 2004 09:38


Exceptions in ConsolenApplication
 
Hallo,

ich habe folgendes Problem, wenn ich in einer ConsolenApplication eine Exception werfe ...

Delphi-Quellcode:
raise Exception.Create('File does not exist.');
bekomme ich leider nur in der Delphi IDE die richtige Exception.

In der Console steht dann aber ...

Code:
Exception EAccessViolation in module USLICheck.exe at 0005B7A5.
Access violation at address 0045B7A5 in module 'USLICheck.exe'. Read of address
00000008.
Was mich doch etwas wundert, da dies nicht die Exception ist die ich eigentlich erwartet habe.

Alter Mann 5. Mai 2004 18:58

Re: Exceptions in ConsolenApplication
 
Hallo GuenterS,

Soweit ich weis sind Exception-Blöcke eben aus diesen Grund nicht zulässig.
Die Anwendung wirt mit der Ausgabe der Fehlermeldung und einem Halt mit Fehlercode beendet.

Code:
Writeln(Format('File %s does not exist.', [FileName]));
Halt(2);
Wobei die '2' der Exitcode aus alten DOS-Zeiten ist. Ob der Exitcode indiesem Fall
mit Textausgabe übereinstimmt weis ich jetzt nicht aus dem Hut.

GuenterS 5. Mai 2004 19:04

Re: Exceptions in ConsolenApplication
 
Nun ich habe das ganze zuhause noch einmal probiert und mußte feststellen, dass es nicht am Applikationstyp Konsole liegt.

Es wird an einer eingebundenen Unit liegen, dass ich da eine so seltsame Meldung bekommen habe.

Sonst funktioniert es nämlich bis auf ein nicht viel aussagendes Fehlerfenster, aber in der Kommandozeile steht die richtige Message. (Ist allerdings in der Form auch nicht wirklich brauchbar, leider).


Trotzdem danke, ich denke, dass man es so lösen muss wie Alter Mann bereits schrieb. (Irgendwie sinnig, wenn man bedenkt Messagebox in einer KonsolenApp?) andererseits hätte man auch denken können dass die Exception Klasse schon so clever ist und das überreißt. :-D


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