Olaf Schneider: Fehlermeldungen bei DOM und XSL in PHP5

Hallo,

wenn kein eigenes Errorhandling aktiv ist, senden die DOM-Funktionen sowie die XSL-Funktionen von PHP5 relativ genaue Fehlermeldungen an den Output, aus dem meistens Fehlerursache und Zeile im XML/XSL hervorgehen. Ich möchte diese Fehler abfangen (in diesem Fall werfe ich im Fehlerfall Exceptions) und muss dazu den häßlichen @-Operator benutzen, der die Fehlermeldungen unterdrückt, da die DOM-Funktionen ihrerseits keine Exceptions werfen.

Leider scheint meine einzige Information dann ein ´false´ zu sein, das die Funktionen im Fehlerfall zurückliefern. Lässt sich die Information gewinnen, _was_ für ein Fehler aufgetreten ist?

Gruß
Olaf

  1. Hi,

    wenn kein eigenes Errorhandling aktiv ist, senden die DOM-Funktionen sowie die XSL-Funktionen von PHP5 relativ genaue Fehlermeldungen an den Output, aus dem meistens Fehlerursache und Zeile im XML/XSL hervorgehen. Ich möchte diese Fehler abfangen (in diesem Fall werfe ich im Fehlerfall Exceptions) und muss dazu den häßlichen @-Operator benutzen, der die Fehlermeldungen unterdrückt, da die DOM-Funktionen ihrerseits keine Exceptions werfen.

    Leider scheint meine einzige Information dann ein ´false´ zu sein, das die Funktionen im Fehlerfall zurückliefern. Lässt sich die Information gewinnen, _was_ für ein Fehler aufgetreten ist?

    statt den @-Operator zu verwenden kannst du mittels set_error_handler() eine Funktion definieren, die aufgetretene Fehler abfängt. Dann kannst du die Fehlermeldung parsen und ggf. eine passende Exception werfen.

    Schöne Grüße
    Julian

    1. Hallo,

      statt den @-Operator zu verwenden kannst du mittels set_error_handler() eine Funktion definieren, die aufgetretene Fehler abfängt.

      Siehe auch
      libxml_use_internal_errors()
      libxml_get_errors()

      Mathias

      1. Hallo Mathias,

        diese libxml-Funktionen hätte ich gerne verwendet, entwickle aber (noch) unter php 5.0.x. Ich habe mitch jetzt mit der Direktive track_errors on beholfen.

        Gruß Olaf