PHP und aussagekräftige Fehler: „Fatal error: Exception thrown without a stack frame in Unknown on line 0“

Fatal error: Exception thrown without a stack frame in Unknown on line 0

Was sagt uns diese nette Fehlermeldung? Hm… Ich glaube ehrlich gesagt… Irgendwie gar nichts. Oder?

Google hat mir dazu bisher auch nicht wirklich weitergeholfen. Diese Fehlermeldung scheint öfter vorzukommen, aber ein konkreter Grund dafür? Fehlanzeige.

Also habe ich mich selbst auf den mühsamen Weg des Debugging gemacht und – ja tatsächlich – den Fehler in meinem Fall gefunden und umgehen können.

Mit ein bisschen Aufwand habe ich herausgefunden, dass der Fehler wohl in einer der Funktion sha1() und/oder sha1_file() auftritt. Nachdem dieser Fehler (bei einem HTTP-Status 404 bei Abruf der Datei durch sha1_file()) abgestellt war, zeigte sich nach einiger Zeit wieder der gleiche Fehler. Aber an diesen Funktionen konnte es nicht (mehr) liegen – die waren gut mit einem try-catch-Konstrukt abgesichert. Seltsam. Die weitere Recherche ergab aber die Lösung. Zum Debugging des Online-Shops wird die FireFox-Komponente FirePHP benutzt. Da das Skript aber über die Kommandozeile aufgerufen wurde (CLI), konnten dort wohl die erforderlichen Header nicht richtig gesetzt werden und die Fehlerbehandlung schlug fehl. Eine fallbedingte Einbindung der FirePHP-Klasse schuf Abhilfe. Recht viel tiefer wollte ich dann schon nicht mehr forschen…

Kurz noch zum Hintergrund, wieso die Verkettung der Funktionen sha1() und sha1_file() überhaupt notwendig ist:
Es geht um die Erstellung von Produktbildern aus den Rohgrafiken für die Online-Shops voelkner und SMDV. Hierzu ist es notwendig, dass neben den Eigenschaften für das zu erstellende Bild natürlich auch eine Möglichkeit mit in den Wert spielt, der anzeigt ob sich die Ursprungsdatei geändert hat oder nicht. Der SHA1-Wert wird dann als Dateiname für das bearbeitete Bild verwendet – und fertig ist das Caching.

Über Markus Zierhut

Life Is What You Make It!
Dieser Beitrag wurde unter PHP abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.