Funciones del Gestor Capa mapeo objeto-relacional

Throw sql exception


Cuando en la aplicación se realiza una operación sea de inserción, de borrado o de editado; el gestor siempre verifica que la ejecución de esta operación haya sido satisfactoria, en caso contrario, el gestor genera una excepción sql.

Las excepciones sql se encuentran en el archivo: work/configs/sql_exceptions.php este archivo se creo con el objetivo de que cuando exista una excepción sql como por ejemplo: una clave foránea invalida, un campo único repetido, una clave primaria repetida o cualquier otro tipo de excepción que solo se detecte cuando se intente realizar una operación en base de datos; entonces estas excepciones se puedan modificar y sacar por un pantalla un mensaje mas amigable que los que normalmente trae por defecto mysql.

Ejemplo:
Supongamos que registramos una persona con documento 1, y luego por error intentamos registrar otra persona con documento 1.

Mysql sacará por pantalla un aviso de este tipo: ERROR 1062: Duplicate entry '1' for key document
Supongamos que nuestra aplicación esta en español, un mensaje de ese tipo quizás no sea el mas amigable y los usuarios de la aplicación quizás no lo entiendan, por este motivo existe sql_exceptions.php; el framework ya trae predefinido como mostrar de forma mas amigable este error 1062 y en lugar del mensaje anterior aparecería por pantalla: The Document is already in use and must be unique.

¿Como modificar sql_exceptions.php?
El procedimiento es sencillo, cada Error de mysql tiene un número asociado (ver listado aquí) entonces simplemente usando la tecnica que siempre hemos manejado de los 2 switches, el primer switche corresponde al número de error que se desea mostrar de manera diferente, y el segundo switche corresponde al nombre de la clase a la cual se le desea modificar el mensaje de excepción, por lo general se recomienda trabajar con un case por defecto en el segundo nivel de switche que siempre se ejecuta, así como esta en el ejemplo del error 1062 dentro del archivo sql_exceptions.php
Funciones del Gestor Capa mapeo objeto-relacional