AGB  ·  Datenschutz  ·  Impressum  







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

try...except erkennt Exception nicht

Ein Thema von BKempf · begonnen am 18. Aug 2007 · letzter Beitrag vom 18. Aug 2007
Antwort Antwort
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#1

try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:02
Hallo,

Delphi 6 Enterprise mag folgenden Code nicht:
Delphi-Quellcode:
  try
    XML.LoadFromFile(XMLFile);
  except
    on E:EDOMParseError do
    begin
      //
    end;
  end;
XML ist vom Typ TXMLDocument.

Der Name der XML-Datei ist gültig, die Datei selbst existiert aber nicht.
Das erwartete Verhalten wäre, dass die Fehlerbehandlung den EDOMParseError abfängt, damit ich ihn behandeln kann.
Stattdessen läuft der Compiler bis zum EDOMParseError und meckert, dass er den Bezeichner nicht kenne.
Nachschlagen in der OH ergab, dass die Exception in der Unit DB eingeführt wird, also habe ich sie in die uses übernommen. Unabhängig davon, ob DB im interface- oder im implementation-Teil eingebunden wird, bleibt das Resultat dasselbe.

Wenn ich stattdessen E:Exception behandle, funktioniert es wunderbar, aber mir geht es genau um den EDOMParseError, da ich die Exception nicht einfach crunchen will.

Kennt jemand eine Lösung, wie ich dem Compiler die genannte Exception doch noch schmackhaft machen kann?
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:04
was wird denn bei verwendung von E:Exception für ein exceptiontyp genannt?
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:13
Hi,

grep search meint: Unit xmldom einbinden...

Gruß hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:15
erzeugst du denn überhaupt eine Instanz von TXMLDocument?
  Mit Zitat antworten Zitat
BKempf

Registriert seit: 1. Jun 2004
103 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:22
Bei Verwendung von E:Exception oder ohne Fehlerbehandlung wird EDOMParseError genannt, die Instanz von XMLDocument existiert und xmldom hilft...

Danke für die Antworten. Anscheinend bin ich einem Fehler in der OH auf den Leim gegangen.
Schönen Abend!
The problem with troubleshooting is that sometimes the trouble shoots back.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: try...except erkennt Exception nicht

  Alt 18. Aug 2007, 22:30
wenn du prüfen willst ob datei vorhanden,
werden bereits ausreichende validierungsfunktionen mitgeliefert:

Delphi-Quellcode:
  // prüfen ob XML-File vorhanden:
  if not xmlDoc.load(AFileName) then
  begin
    // prüfen ob XML-File "wohlgeformt" ist:
    If xmlDoc.parseerror.errorCode <> 0 then
    begin


      MessageDlg( Format('XML-Datei %s ist nicht wohlgeformt --> Abbruch'+#13#10+#13#10+
                  'Code: %d' + #13#10 +
                  'Reason: %s' + #13#10 +
                  'URL: %s' + #13#10 +
                  'SrcText: %s' + #13#10 +
                  'Line: %d' + #13#10 +
                  'LinePos: %d' + #13#10 +
                  'FilePos: %d' + #13#10,
                  [AFileName,
                  xmlDoc.parseerror.Get_errorCode,
                  xmlDoc.parseerror.Get_reason(),
                  xmlDoc.parseerror.Get_url,
                  xmlDoc.parseerror.Get_srcText,
                  xmlDoc.parseerror.Get_line,
                  xmlDoc.parseerror.Get_linepos,
                  xmlDoc.parseerror.Get_filepos]),
                  mtWarning, [mbOK], 0);
      Exit;
    end else
    begin
      AddToMemo('XML-Datei nicht vorhanden!');
      exit;
    end;
  end else
    AddToMemo('XML-Datei erfolgreich geladen!');
  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 18:57 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