2017-12-06 4 views
1

Ich arbeite an Yii2 fortgeschrittenen Anwendungsprojekt und ich habe ein Problem mit yii2 integrierten Error Handler. Hier ist die Beschreibung meines Problems:Yii2 - Fehlerhandler kann Datenbankausnahmen nicht abfangen

I errorAction in meinem Back-End-Konfiguration auf diese Weise festgelegt haben:

'errorHandler' => [ 
    'errorAction' => 'site/error', 
], 

Nun wird das Verfahren actionError() in den SiteController Fänge alle Anwendungsausnahmen, benutzerdefinierte Ausnahmen und auch schwerwiegende Fehler , außer Datenbank bezogene Ausnahme wie yii\db\IntegrityException. Ich weiß nicht warum, aber wenn eine solche Ausnahme auftritt, macht actionError() nichts! Ich möchte keine Ausnahme manuell mit try-catch blockieren Block und ich möchte die zentrale ErrorHandler alle Ausnahme fängt.

Wie kann ich dieses Problem beheben? Vielen Dank an alle yii Experten für die Aufmerksamkeit. Bitte hilf mir dieses seltsame Problem zu lösen.

+0

Haben Sie 'YII_DEBUG' deaktiviert? – Yupik

+0

@Yupik Nein, es hat 'wahren' Wert. – hamed

+0

Ändern Sie es, sollte behoben werden. – Yupik

Antwort

0

Gemäß dieser GitHub-Ausgabe: yiisoft/yii2/issues/10657 und zu dem Kommentar von @Yupik müssen Sie die YII_DEBUG ändern.

Wenn YII_DEBUGtrue ist, sollten Sie die richtige Nachricht über yii\db\IntegrityException im Debug-Modus sehen.

Wenn YII_DEBUG ist false (wie in einer Produktionsumgebung) Fehler wird umgeleitet und sehen es in einem benutzerfreundlichen Modus.

Verwandte Themen