PHP: Exceptions und SimpleXMLElement

0

Vom 22.07.2009 | Von Patrick | In Ausbildung, Internet, Webentwicklung
Tags: , , ,

Was passiert wenn man mit SimpleXML eine XML-Datei öffnet, die ungültiges XML enthält?
Sie gibt eine Exception aus!
Diese Exception kann man aber nicht richtig fangen.
Siehe PHP-Bug #39157.


$file = "beispiel.xml";
try {
$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}

Würde hier eine Datei mit ungültigem XML geöffnet werden, so wird eine Exception geworfen, direkt ausgegeben und der catch-Block wird auch noch ausgeführt.

Was nun machen wenn man keine Exception ausgegeben haben möchte?
Ein @ vor die Zuweisung stellen, um die Fehlerausgabe zu unterdrücken!


$file = "beispiel.xml";
try {
@$xml = new SimpleXMLElement(XMLPATH . $file, null, true);
} catch (Exception $e) {
echo $file . " : Ungueltiges XML\n";
continue;
}

Und schon wird die Exception gefangen und NURNOCH der catch-Block ausgeführt – ohne vorheriges ausgeben der eigentlichen Exception.


Auch interessant:


Schreibe einen Kommentar

Gewerbliche Kommentare, z.B. mit Links zu irgendwelchen Produktseiten, werden pro Kommentar mit 55 EUR pro Monat berechnet. Bei Nichtgefallen gibt es kein Geld zurück, umtausch ausgeschlossen!