![]() |
IXMLDocument Exceptions
Ich habe einige XMLDocuments. Leider werden mir beim Laden der Daten keine Exceptions mit try ... except ... end angeboten. Warum?
Code:
Das selbe Problem habe ich auch beim Zugriff auf IXMLNode:
uses
XMLIntf; ... var XMLDocument: IXMLDocument; begin try XMLDocument := LoadXMLDocument(Filename); except MessageBox(0, 'Fehler beim Lesen der Datei', 'Fehler', MB_OK); end;
Code:
... Meine MessageBoxes werden nie angezeigt. :(
var
XMLNode: IXMLNode; begin ... try XMLNode.Text := #1; // #1 ist kein gültiger Inhalt für ein XML Node except MessageBox(0, 'Fehler beim Setzen eines Nodes', 'Fehler', MB_OK); end; |
AW: IXMLDocument Exceptions
Weil der XMT-Text erst beim "Aktivieren" geparst wird, gibt es beim Laden auch noch keine Fehlermeldung.
Und
Delphi-Quellcode:
ist vollkommen korrekt, da die XML-Komponente das richtig kodieren sollte, was dann wieder korrektes XML ergibt 
XMLNode.Text := #1;
|
AW: IXMLDocument Exceptions
Zitat:
Gleiches Problem hab ich beim SaveToFile, wenn die Datei durch ein anderes Programm blockiert ist. Und
Delphi-Quellcode:
ist vollkommen korreckt, da die XML-Komponente das richtig kodieren sollte, was dann wieder korrektes XML ergibt [/QUOTE]
XMLNode.Text := #1;
#1 is kein gültiger Text in einem XML Dokument - das kann auch nicht escaped werden. Aber das war nicht meine Frage. Mein Problem ist, dass Exceptions auftreten, ich diese aber nicht mit try except end abfangen kann. Die Exception wird als solche aber vom Programm als Exception behandelt und angezeigt. Und letzteres möchte ich gerne abfangen... |
AW: IXMLDocument Exceptions
Exceptions werden, wenn du das Programm in der IDE laufen hast, angezeigt wenn du sie nicht unterdrückt hast. Trotzdem müsstest du danach im exceptblock deines Programms landen. Startest du die exe ausserhalb der IDE, wird dir nur der Text im exceptblock angezeigt.
|
AW: IXMLDocument Exceptions
Zitat:
Meine Frage war nicht, warum mir keine Exception angezeigt war. Meine Frage war, warum der Teil zwischen "except" und "end" nicht aufgerufen wird, falls eine Exception auftritt. Um die Exception im Programm zu blockieren gibt "try except end". Das funktioniert bei mir auch überall gut - und ich habe auch viel Übung mit Exceptions. Einzig bei IXMLDocument und IXMLNode Exceptions funktioniert das nicht. |
AW: IXMLDocument Exceptions
Hmmm, demnach müsste es knallen und da es eine Exception auslöst, wird es auch den Except-Block durchlaufen.
Zitat:
Delphi-Quellcode:
uses
XMLIntf, XMLDoc; procedure TForm6.FormCreate(Sender: TObject); var XMLDocument: IXMLDocument; begin try XMLDocument := LoadXMLDocument('D:\x.xml'); //XMLDocument.Active := True; except on E: Exception do ShowMessage('Fehler beim Lesen der Datei' + sLineBreak + E.Message); end; end; |
AW: IXMLDocument Exceptions
Hallo,
also bei mir kommt auch die Exception. Meine Code sieht allerdings etwas anders aus.
Delphi-Quellcode:
uses
ActiveX, XMLIntf, XMLDoc; var XMLDocument: IXMLDocument; begin try XMLDocument := NewXMLDocument; XMLDocument.LoadFromFile(''); except MessageBox(0, 'Fehler beim Lesen der Datei', 'Fehler', MB_OK); end; |
AW: IXMLDocument Exceptions
Danke für eure Mühe.
Ich hab jetzt ein neues Demo-Programm geschrieben - und dort klappt es auch. :roll: Also muss ich mir mal die Zeit nehmen und in meinem eigentlichen Programm das Problem finden. Somit habt ihr mir geholfen! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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