PHP Exceptions und Fehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Exceptions und Fehler

    Guten Morgen,
    ist es möglich alle aufgetretenen Fehler und Exceptions beim Shutdown der Applikation abzufragen.

    Sprich gibt es eine Variable in der alle aufgetretenen Fehler Dokumentiert werden?

    Hintergrund ist folgender: Bei Kundenprojekten soll ein Monitoring stattfinden das sämtliche Fehler Speichert und an einem anderen Punkt zur Verfügung stellt. Grundsätzlich kein Problem. Wir bauen unseren eigenen Errorhandler und arbeiten die auftretenen Fehler dort ab bzw. speichern uns diese weg.

    Problem dabei ist nur das in sämtlichen Kundenprojekten ebenfalls Exceptions geschmissen und gefangen werden. Diese werden dann (durch das Auffangen) nicht mehr als Fehler angesehen. Somit tritt hier der errorhandler ausser kraft.

    Ab PHP 5.3 ist es zwar möglich über ein Exception-Objekt sich die zu letzt aufgetrene Fehlernachricht auszugeben (Dies könnte man sogar itterieren und alle Exceptions abarbeiten) allerdings wie schon gesagt nur mit PHP 5.3.

    An allen Stellen im Kundenprojekt kann man unmöglich alle Catch-Blöcke ändern sodass hier sinnvoll irgendwohin geloggt wird.


    Grundsätzlich meine Frage: Gibt es irgendeine Möglichkeit sich alle Fehler (auch Exceptions) auszugeben? Selbst wenn die Exceptions gefangen werden?


    Vll. hat von euch jmd eine Idee.

    LG Exeu

  • #2
    Wenn ihr eine Ableitung der Exception Klasse verwendet habt, sollte das doch kein Problem darstellen. Wenn nicht: Handarbeit.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      PHP-Code:
      ini_set('track_errors'1);
      @
      fopen('nosuchfile'); // schreibt Fehler in $php_error
      @fopen('andagain…'); // überschreibt $php_error 
      Das ist nur ein Möglichkeit für Kundencode, bei dem du keine Chance hast. Mir fallen noch mehr Beispiele ein.
      Um wirklich jeden Fehler mitzubekommen, musst du den Interpreter ändern. Das ist mit Userland Code allein nicht machbar.

      Kommentar

      Lädt...
      X