![]() |
Delphi-Version: 10 Berlin
Exception verlassen?
Hallo,
ich habe da ein seltsames Phänomen... Ich nutze die ComPort-Komponente ( ![]() Jede geht auf einen anderen Port. Zb ComCom1 und ComCom2 Wenn nun ein User zB mit ComCom1 den Com15 öffnet und (weil man ja nicht davon ausgeht, daß das Programm ein DAU benutzt) auf ComCom2 auch Com15 öffnen will - fängt die Komponente eine Exception ab (EOSError System-Fehler 5). Jetzt springt die da aber nach der Abhandlung nicht raus, sondern fährt an der Stelle fort, bevor der Fehler passiert ist und provoziert ihn gerade nochmal, und nochmal und so weiter... :pale: Schreibe ich also
Delphi-Quellcode:
Knallt es in der Open-Procedure, kommt wieder raus und setzt die Programmausführung nach dem "try" fort, also wieder mit ComCom2.Open - wo es dann wieder knallt... und so fort :pale:
try
ComCom2.Open; except //behandle das end; Es springt also nicht ins Except. Wie kann ich das lösen? |
AW: Exception verlassen?
Delphi-Quellcode:
oder
try
doSomething; except handleTheException; raise; // raise the same exception again end;
Delphi-Quellcode:
try
doSomething; except handleTheException; raise ESomeOtherException; // e.g. EAbort end; |
AW: Exception verlassen?
Hat diese Komponente ein OnException, oder etwas Vergleichbares?
Es kann sein, dass die Komponente den Fehler intern mit einem Try-Except abfängt und man dort das Verhalten entweder über Options-Property oder Events-Methoden steuern kann. Der Zugriff auf den COM-Port wird in einem Thread behandelt und leider haten viele Komponentenentwickler hier nicht genug Ahnung, wie man solche Exceptions an den aufrufenden Thread weiter reicht, wenn sie eigentlich von dort initiiert wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 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 by Thomas Breitkreuz