Autor Beitrag
SteheAufDerLeitung
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: Di 21.08.07 12:42 
Da nicht jedes Objekt ein Property vom Namen "FrameDoc.Typical" besitzt, nutze ich die try-except-Anweisung fuer alle Objekte:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
try 
  Objekt_Property := Objekt.Properties.Property['FrameDoc:Typical'];
except

end;


Besitzt das Objekt das property nicht, so wird trotzdem eine Fehlermeldung ausgegeben, das Programm bricht ab. Woran liegt es, dass gar nicht erst ins except gegangen wird?

Danke schonmal..
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 21.08.07 12:49 
Wie sieht den dein except aus? welche Exception wird geworfen?

_________________
Markus Kinzler.
SteheAufDerLeitung Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: Di 21.08.07 12:51 
Es entsteht eine Exception der Klasse EOleException. Meldung: Parameter ist inkorrekt.

Für die Except hab ich noch nichts geschrieben, aber von mir aus sollte auch "close" reichen ;-)
arj
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 378

Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
BeitragVerfasst: Di 21.08.07 13:08 
Vermutlich testest du in der Entwicklungsumgebung. Die fängt alle Fehler ab und stellt sie
dar. Im Betrieb ohne IDE wird der Fehler nicht angezeigt.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 21.08.07 13:11 
Du musst auch sagen welchen Fehler du abfangen willst, in deinem Fall

ausblenden Delphi-Quelltext
1:
on EOleException do ...					

_________________
Markus Kinzler.
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Di 21.08.07 13:17 
except funktioniert auch ohne Angabe des Exception-Typs, auch wenns mit Angabe sicherlich besser lesbar ist.

_________________
Bravery calls my name in the sound of the wind in the night...
SteheAufDerLeitung Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: Di 21.08.07 13:34 
Richtig, ich teste in der Entwicklungsumgebung. Beim Debuggen wird jedoch nur try ausgeführt. Das Meldefenster öffnet sich und except wird auch bei "on EOleException do ShowMessage('bla')" nicht ausgeführt. Wieso?
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Di 21.08.07 15:40 
Ein Exception Block ohne "on ... do" fängt alle Exceptions ab. Allerdings hat man so keine Instanz des Fehler und kann nicht auf den Fehlertext/Typ zurückgreifen. Aber zum Ignorieren (wenn man so etwas machen muss) ist das durchaus okay.

Aber dieses Verhalten lässt die Vermutung zu, dass diese Exception aus OLE selbst (oder eine dazwischen liegende Bibliothek) stammt und der die Anwendung dann abbricht. Ja so was geht und wird leider immer wieder gemacht. Ist aber nur eine Vermutung von mir.

Du wirst dann wohl vermutlich alle Eigenschaften durchgehen müssen und per Hand schauen ob deine Eigenschaft existiert.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.