Gestire Gli Errori Tramite Un'azione

Premesso che ho letto la guida per gestire gli errori mediante un’azione

premesso che yii mi sembra già ben configurato normalmente per farlo.

Infatti in /config/main.php leggo:




'errorHandler'=>array(

	// use 'site/error' action to display errors

	'errorAction'=>'site/error',

),



premesso che ho configurato l’action Error del controller Site per inviarmi una mail:





public function actionError()

{

	Lib::mailText('xxxxx@gmail.com', 'prova', 'ciao');

	......

	......

}



e se richiamo un file mancante funziona.

Per esempio se scrivo htttp://localhost/questofilenonesiste

mi arriva una mail segno che il framework ha fatto l’handling dell’errore correttamente.

Ora veniamo al problema.

Ho scritto questa funzione:




private function test() {

	//sbaglio di proposito la query per verificare se yii mi manda la mail

	$query="select *, campo_inesistente from tabella";

	$result=Yii::app()->db->createCommand($query)->query()->readAll();

}



che quando richiamata, mi mostra chiaramente a video l’errore:

CDbException

CDbCommand ha riportato un errore nell’esecuzione della query SQL: SQLSTATE[42S22]: Column not found:

ma non mi arriva la mail per informarmi del problema.

Sembra quasi che YII non sia configurato correttamente per fare l’handling degli errori CDbException,

tuttavia la configurazione in config/main.php mi sembra esatta.

Qualcuno sa come risolvere?

Quando hai il debug acceso ti fa vedere le eccezioni, commenta la riga nell’index.php


defined or define YII_DEBUG

Grazie Zaccaria, funziona.

Sei veramente un drago:

rapido e preciso