Ein Beispiel zum Abfrangen von allgemeinen Fehlern und Exceptions im Yii Framework der Programmiersprache PHP. Der Error Handler / Exception Handler wird mittels der Events onError und onException implementiert.
Die Dokumentation vom
Yii Framework erwähnt den Einsatz von Events und ErrorHandler zum Abfangen von Fehlern. Jedoch fällt die Dokumentation sehr spärlich aus, so fehlen Beispiele, wie die Events tatsächlich implementiert werden.
Der onError Event wird bei PHP Fehlern geworfen, zum Beispiel wenn ein Array Index nicht existiert. Der onException Event wird ausgelöst, wenn eine Exception nicht mittels try / catch gefangen wurde. Bei beiden Events kann die Eigenschaft 'handled' auf true gesetzt werden, wenn der Fehler behandelt wurde. Andernfalls wird der Fehler an den nächsten Handler weiter gereicht. Dies ist nützlich, wenn man zum Beispiel nur einen zusätzlichen Log Eintrag anlegen möchte.
Fehlerbehandlung: onError Error Handler
// In der Config - Direkt im Array Root Index
// Error Handler:
// Implementierung als Anonyme Funktion (Closure) ab PHP 5.3
'onError' => function($event) {
Yii::log($event, 'error');
},
// Implementierung als Callback Funktion
'onError' => array('onErrorCallback'),
function onErrorCallback($event) {
Yii::log($event, 'error');
}
// "Dynamische" Implementierung in einem Module
Yii::app()->onError = array('onErrorYii');
Exceptionbehandlung: onException Exception Handler
// Exception Handler:
// Implementierung als Anonyme Funktion (Closure) ab PHP 5.3
'onException' => function($event) {
Yii::log($event, 'exception');
},
// Implementierung als Callback Funktion
'onException' => array('onExceptionCallback'),
function onExceptionCallback($event) {
Yii::log($event, 'exception');
}
// "Dynamische" Implementierung in einem Module
Yii::app()->onException = array('onExceptionYii');
Links
Yii Framework
Yii Doku: onError
Yii Doku: onException
(/span/span(
Kommentar Verfassen