Datenbankfehler abfangen

Hallo Leute,

ich bin gerade auf der Suche nach einer Möglichkeit Datenbankfehler während der Ausführung einer Yii-App abzufangen. Sprich, ich habe eine Anwendung auf der überall verschiedene Datenbankabfragen durchgeführt werden. Gibt es eine generelle möglichkeit (oder überhaupt eine) Fehler der Datenbank (ist nicht mehr verfügbar zum Beispiel) abzufangen und auf eine Fehlerseite weiterzuleiten?

Grüße

Martin

Meinst du sowas wie einfache try/catch-Blöcke?


try {

  $model->save();

} catch (CDbException $e)

  // ...

}

In die config:




'onException' => function($event)

{

   if ($event->exception instanceof CDbException)

   {

      $event->handled = true;

      Yii::app()->runController('site/dbError');

   }

},



Closures gibts erst seit PHP >= 5.3. Ansonsten halt eine "echte" callback-funktion nehmen:




'onException' => array('class', 'function'),



Den Datenbankfehler kannst du mit


$event->exception->message

abrufen bzw. an den Controller weitergeben.

Hallo Y!!,

an welche Stelle der Config?

Grüße

Martin

Ist egal wo, muss aber freistehen:




return array(


   'onException' => ...


   'components' => array(

      ...

   ),


);