Control de Errores

edited marzo 2008 in Principiantes
Hola a todos,

En una ocación anterior preguntaba como saber si una acción de adición, modificación o eliminación se ejecutaba. Bueno la respuesta fue, que estos metodos retornan verdadero o falso. Pero cuando intento realizar una operación de modificación por ejemplo, en donde a intensionalmente intento generar un valor duplicado para una llave unica dentro de la valida, la siguiente instrucción me deberia funcionar:

$this->Unidadesmedidas->find($this->request("umedida_id"));

$this->Unidadesmedidas->umedida_nombre = $this->request("umedida_nombre");

if ($this->Unidadesmedidas->update()) {
Flash::success("Registro modificado satisfactoriamente.");
}
else {
Flash::error("ERROR: El registro no pudo ser modificado");
}

pero lo que obtengo es una pagina de error:

KumbiaDBException: Duplicate entry 'mts' for key 2 al ejecutar 'UPDATE unidadesmedidas SET umedida_abreviatura = 'mts',umedida_nombre = 'kjhgkjhgkihjgytf',umedida_bloqueado = 'N',umedida_act = 'S',umedida_sys = 'XXX',umedida_movdb = 'UPD|1|2008-02-28 14:48:14|190.1.167.95' WHERE id = '9' '
Error Code: 1062
En el archivo C:\AppServ\www\kerp\forms\db\adapters\mysql.php en la línea: 135
#0 C:\AppServ\www\kerp\forms\db\active_record.php(1443): db->query('UPDATE unidades...')
#1 C:\AppServ\www\kerp\forms\db\active_record.php(1526): ActiveRecord->save()
#2 C:\AppServ\www\kerp\controllers\unidadesmedidas_controller.php(174): ActiveRecord->update()
#3 [internal function]: UnidadesmedidasController->upd('9')
#4 C:\AppServ\www\kerp\kumbia.php(201): call_user_func_array(Array, Array)
#5 C:\AppServ\www\kerp\public\index.php(76): Kumbia::main()
#6 {main}

Session Dump

string(159) "a:4:{s:14:"ss_ultimo_menu";i:14473;s:22:"ss_umedida_condiciones";s:24:"1 and umedida_act = 'S' ";s:18:"ss_umedida_paginas";s:2:"25";s:10:"ss_empl_id";s:1:"1";}"


Como puedo hacer para controlar este tipo de situaciones, es decir como podría hacer para saber que ocurrio un error y mostrar al usuario por medio de Flash por ejemplo, cual fue el error sucedido?

Comentarios

Sign In or Register to comment.