Exceptions und Errors auf Fehlerseite umleiten?

Hallo,

Ich versuche gerade, mein aktuelles projekt etwas rund zu schleifen. In dem Zuge möchte ich sicherstellen, dass wenn in irgend einem Plugin / Controller / Service ein Fehler auftritt, der User auf die Standardfehlerseite weitergeleitet wird. Mein Problem hierbei ist, dass mir die Möglichkeiten, dies umzusetzen, ausgehen.

Derzeit sieht man als User, wenn eine Exception geworfen wird, den Stacktrace auf einer sonst blanken Seite.

Dinge, die ich bereits probiert habe:

  • In .htaccess eine Weiterleitung einrichten ( ErrorDocument 503 error.html [die html habe ich zu testzwecken angelegt] )
    • Funktioniert nicht; es scheint, dass der Apache im Falle eines 503-Fehlers garnicht informiert wird.
  • In config.php die Einstellungen unter ‘front’
    • showExceptions und throwExceptions ändern überhaupt nichts
    • wenn noErrorHandler auf true gesetzt ist, sehe ich einfach eine blanke Seite, ohne Stacktrace
  • In config.php die Einstellungen unter ‘phpsettings’
    • wenn display_errors auf 0 gesetzt ist, wird einfach die Zeile “503 Service not available” anstatt dem Stacktrace geprintet (nur für php-Fehler, nicht für Exceptions)
  • Im Backend scheint es (außer für 404 Page not found) keine Einstellung zu geben
  • Das Internet zeigt sich auch wenig hilfreich; man findet alle möglichen Probleme, nur nicht dieses :confused:

Zum Testen habe ich in einem eigenen Controller zwei Actions hinzugefügt, die mit Exceptions und Fehlern um sich schmeißen:

    public function exceptionAction() {
        throw new Exception('test exception');
    }

    public function errorAction() {
        // $foo ist nicht definiert
        $foo->bar();
    }

 

Meine Frage ist jetzt: Wie bekomme ich Shopware dazu, Fehler und Exceptions abzufangen und auf die standard-Fehlerseite weiterzuleiten?

 

Grüße und danke,

REAL

 

UPDATE: Auf meinem lokalen Server werden Exceptions richtig auf die Fehlerseite weitergeleitet, wenn showException, throwException und noErrorHandler false sind. Auf dem LIVE-System funktioniert das mit gleichen Einstellungen nicht… Errors werden von beiden Systemen direkt ausgegeben.