Davok`xarden: Benutzerdefinierte Fehlermeldungen

Hi Leute,

Ich habe jetzt im PHP-Manual die Funktion trigger_error()  endeckt. Wenn man die jetzt aber in eine eigene Funktion packt und diese Aufruft enthält die Fehlermeldung bei der Angabe von Datei & Zeile die Stelle bei der trigger_error()  aufgerufen wurde. Wie wird dort aber die Datei & die Zeile angeben in der Die Funktion aufegerufen wurde?

Bsp. (Ausgabe: Fehler in Zeile 4, Gewüncht: Fehler in Zeile 8):

  
<?php  
    // PHP-Code  
    function func () {  
        // PHP-Code  
        trigger_error("Fehler");  
        // PHP-Code  
    }  
    // PHP-Code  
    func();  
    // PHP-Code  
?>  

MFG Davok`xarden

  1. Hallo Davok`xarden.

    Ich habe jetzt im PHP-Manual die Funktion trigger_error()  endeckt. Wenn man die jetzt aber in eine eigene Funktion packt und diese Aufruft enthält die Fehlermeldung bei der Angabe von Datei & Zeile die Stelle bei der trigger_error()  aufgerufen wurde.

    Ganz recht. Genau so, als wäre an genau dieser Stelle ein Fehler aufgetreten. Für mehr ist diese Funktion auch nicht gedacht.

    Wie wird dort aber die Datei & die Zeile angeben in der Die Funktion aufegerufen wurde?

    Gar nicht. Möchtest du nicht vielleicht eher einen eigenen Error-Handler schreiben?

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hi Mathias,

      Wie wird dort aber die Datei & die Zeile angeben in der Die Funktion aufegerufen wurde?

      Gar nicht. Möchtest du nicht vielleicht eher einen eigenen Error-Handler schreiben?

      Nein, will ich auch nicht. Z.B.: Will ich mir eine Klasse schreiben die Daten verwaltet dei in einem Formular mit <input type="file"> hochgeladen werden verwaltet. In meiner Klasse überprüfe ich jetzt ob die Datei hochgeladen wurde:

      if (!isset($_FILES['input_name']) {  
          trigger_error("Die angegebene Datei wurde nicht hochgeladen");  
      }
      

      Nun möchte ich wie in mienem 1. Post beschrieben Datei & Zeile des Methodenaufrufs angezeigt bekommen da das was ich standartmäßig bei Error-Handler in meinem Fall sinnlos wäre.

      MFG Davok`xarden

  2. echo $begrüßung;

    Wie wird dort [bei trigger_error()] aber die Datei & die Zeile angeben in der Die Funktion aufegerufen wurde?

    Dazu müsstest du den debug_backtrace() befragen. Allerdings lohnt es sich nicht, dies jedes Mal bei beim Aufruf von trigger_error() mit einzubauen. Dafür bietet sich als zentrale Instanz ein (von Mathias schon erwähnter) Error-Handler an.

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      Dazu müsstest du den debug_backtrace() befragen. Allerdings lohnt es sich nicht, dies jedes Mal bei beim Aufruf von trigger_error() mit einzubauen.

      Benutze jetzt das. Und rufe anstannt bei jedem Trigger-Error das ganze bei Funktions-anfang einmal auf. Aber wie gebe ich diese daten jetzt an trigger-error weiter. Also das man z.B. mit @functionname() die Fehlermeldungen unterbinden kann?

      MFG Davok`xarden

      1. echo $begrüßung;

        Benutze jetzt das. Und rufe anstannt bei jedem Trigger-Error das ganze bei Funktions-anfang einmal auf. Aber wie gebe ich diese daten jetzt an trigger-error weiter. Also das man z.B. mit @functionname() die Fehlermeldungen unterbinden kann?

        Mit dem Verständnis des Geschriebenen habe ich einige Probleme. Ich versuche mal darauf zu antworten, soweit ich es verstanden habe.

        Wenn du innerhalb eines Error-Handlers Fehler, die von mit @ dekorierte Funktionen geworfen wurden, erkennen willst, musst du fragen, ob error_reporting() den Wert 0 zurückliefert.

        echo "$verabschiedung $name";

        1. Hi dedlfix,

          Jo Thx das hab ich gemeint. Wusste nicht das 'error_reporting()' auch einen Wert zurückgibt. Werde ma später wenn ich Zeit hab mein Fehler-Funktion hochladen falls jemand ma die selben Probleme hat.

          MFG Davok`xarden