dedlfix: Wofür dient $throw->getPrevious() im Handling? Wozu brauch man ellenlangen Backtrace im einfachen Error

Beitrag lesen

Tach!

dein Ausgabe-Beispiel passt für mich nicht zu getPrevious. Darum verstehe ich Deine Frage vielleicht falsch.

Ich habe zwei unterschiedliche Frage gestellt die den zselben sachzusammenhang haben. Die Frage mit Anschauungs-Beispiel unter Punkt 2. hat nichts mit Punkt 1. zutun, wenn ich deine Frage richtig verstehe versteht sich 😉.

Ja, aber der Dump passt weder zur ersten noch zur zweiten Frage.

Grundsätzlich besteht immer die Möglichkeit, [...]

kannst du ein Anschauungs-Beispiel zu Punkt 1. machen wenns geht natürlich. Ich hab diese Docu und andere durchgelesen aber ich verstehe es nicht 😟.

Eine Datenbank-Funktion einer konkreten Datenbank-API wirft einen Fehler. Eine Datenbankabstraktion, die für viele Datenbanken vorgesehen ist, fängt diesen Fehler, kann damit aber auch nichts anfangen und wirft ihn weiter. Allerdings möchte der Entwickler der Abstraktion hier, dass alle Exceptions von einer von ihm definierten Klasse sind, damit man sie weiter oben besser anhand der Klasse fangen kann, und das unabhängig vom konkreten Datenbank-API. Das eigentliche Original kommt in das Feld für die Previous-Exception der von ihm geworfenen Exception. Diese kann entweder allgemein gehalten sein - wenn er für den konkreten Fehler nicht speziell vorgesehen hat - oder spezifischer.

Zu Punkt 2.: Ich wolte eigentlich ein backtrace zum Einfachen Error machen, sowas wie hier in der meiner gecatchted dummy Exception…

…jedoch gibt der mir nur Superglobale Variablen aus 😕 oder sind das sozusagen diese Backtrace???

Wer ist "der"? Vielleicht derjenige, der was anderes in der Zwischenablage hatte?

Den Backtrace jedenfalls braucht man zum Rückverfolgen des Ablaufs. Die Frage, die er beantwortet ist: Was genau hat zur Situation geführt, in der die Exception geworfen wurde? Vielleicht wurde die Funktion - oder auch irgendeine andere vorher - mit unerwarteten Parametern aufgerufen, dann kannst du das in dem Backtrace sehen. Er ist sozusagen das, was du bei einem Live-Debugger im Call-Stack sehen kannst.

dedlfix.