AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exception verlassen?

Ein Thema von SearchBot · begonnen am 21. Jul 2017 · letzter Beitrag vom 21. Jul 2017
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Exception verlassen?

  Alt 21. Jul 2017, 19:23
Delphi-Version: 10 Berlin
Hallo,

ich habe da ein seltsames Phänomen...

Ich nutze die ComPort-Komponente ( http://comport.sf.net/ ) in 2 Instanzen (sagt man das so?).
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...

Schreibe ich also
Delphi-Quellcode:
try
 ComCom2.Open;
except
 //behandle das
end;
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
Es springt also nicht ins Except.

Wie kann ich das lösen?
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Exception verlassen?

  Alt 21. Jul 2017, 19:40
Delphi-Quellcode:
try
  doSomething;
except
  handleTheException;
  raise; // raise the same exception again
end;
oder

Delphi-Quellcode:
try
  doSomething;
except
  handleTheException;
  raise ESomeOtherException; // e.g. EAbort
end;
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Exception verlassen?

  Alt 21. Jul 2017, 20:25
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 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