Ankündigung

Einklappen
Keine Ankündigung bisher.

Letzte ausgeführte Zeile finden

Einklappen

Neue Werbung 2019

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

  • Letzte ausgeführte Zeile finden

    Hi Leute,

    Ich habe mal eine Frage:
    Wie kann ich herrausfinden, welche Zeile als letztes ausgeführt wurden ist, wenn PHP die shutdownsequenz aktiviert hat?
    Oder was auch interessant wäre, gibt es eine möglichkeit (in PHP4) einen Fatalen Fehler anzufangen und statt dessen eine selbstgeschriebene Funktion zu starten?

    mfg
    Aileron


  • #2
    evt suchst Du set_error_handler()

    Kommentar


    • #3
      Nein, aber danke für die Antwort.

      set_error_handler(E_ALL | E_STRICT);


      ist gesetzt. Nein ich suche wirklich nur nach einer Methode wie ich herrausfinden kann, in welcher Zeile das ausführen des Codes abgebrochen ist.

      manchmal ist es nicht möglich eine Fehlermeldung zu sehen (z.B. es wurde ein Image-Header gesendet), oder aus irgendeinem Grund wurde der Befehl mit einem @ versehen (ganz böses Ding, aber es gibt Programmierer die sowas benutzen)

      ausserdem wäre es cool eine Error-statistik in der Datenbank zu erfassen, um diese hinterher für ein Patch auszuwerten.

      mfg
      Aileron

      Kommentar


      • #4
        Danke, ich werde es damit einfach mal versuchen
        Ich hoffe ; vergessen fehler werden damit auch erfasst XD

        Kommentar


        • #5
          Eigene Error-Handler für Syntax-Fehler sind nicht möglich.
          Zitat von PHP.net
          Hinweis: Die folgenden Fehlertypen können nicht von einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR und E_COMPILE_WARNING.
          Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

          Kommentar


          • #6
            Das habe ich inzwischen auch herrausgefunden.

            Aber eine menge Fehler kann man damit schonmal Catchen, das ist auch was wert.
            E_PARSE Fehler sollte auch in keinem Fall mehr auftreten.
            E_ERROR ärgert mich da schon mehr... sowas kann schonmal passieren... wobei mich das wundert. Immerhin gibt es E_USER_ERROR...

            mfg Aileron

            Kommentar


            • #7
              Zitat von Aileron Beitrag anzeigen
              set_error_handler(E_ALL | E_STRICT);

              ist gesetzt. Nein ich suche wirklich nur nach einer Methode wie ich herrausfinden kann, in welcher Zeile das ausführen des Codes abgebrochen ist.
              Allenfalls kann man error_reporting so setzen. set_error_handler erwartet einen Callback-Parameter

              Ich hoffe ; vergessen fehler werden damit auch erfasst XD
              Wie gesagt: Nein. Parse-Errors abzufangen wäre ja auch nicht sehr sinnvoll.

              E_ERROR ärgert mich da schon mehr... sowas kann schonmal passieren... wobei mich das wundert. Immerhin gibt es E_USER_ERROR...
              Diese Aussage verstehe ich nicht. E_ERROR sollten auch nur einmal auftreten. Dann solltest Du die Fehlersituation analysieren und im Code abfangen. Für USER_ERRORs bist Du ganz alleine verantwortlich. Nicht nur für die Fehlersituation, auch den Fehler mußt Du noch selbst werfen.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Schreib dir doch einen error- und assert-handler und leite das ganze auf Exceptions um, die allesamt von einer gemeinsamen Exception erben. In dieser kannst du dann dein Logging vornehmen.

                Exception->GetTrace() oder debug_backtrace() koennen dir helfen, die Quelle eines Fehlers aufzuspueren.
                "Mein Name ist Lohse, ich kaufe hier ein."

                Kommentar

                Lädt...
                X