Prueba
· Las construcciones TRY…CATCH capturan loserrores no controlados de los procedimientos almacenados o desencadenadores ejecutados por el código del bloque TRY. Alternativamente, los procedimientos almacenados o desencadenadores pueden contenersus propias construcciones TRY…CATCH para controlar los errores generados por su código. Por ejemplo, cuando un bloque TRY ejecuta un procedimiento almacenado y se produce un error en éste, el errorse puede controlar de las formas siguientes:
· Si el procedimiento almacenado no contiene su propia construcción TRY…CATCH, el error devuelve el control al bloque CATCH asociado al bloque TRY quecontiene la instrucción EXECUTE.
· Si el procedimiento almacenado contiene una construcción TRY…CATCH, el error transfiere el control al bloque CATCH del procedimiento almacenado. Cuando finaliza elcódigo del bloque CATCH, el control se devuelve a la instrucción inmediatamente posterior a la instrucción EXECUTE que llamó al procedimiento almacenado.
· La construcción TRY…CATCH no se puedeutilizar en una función definida por el usuario.
· En el ámbito de un bloque CATCH, se pueden utilizar las siguientes funciones del sistema para obtener información acerca del error que provocó laejecución del bloque CATCH:
ERROR_NUMBER() devuelve el número del error.
ERROR_SEVERITY() devuelve la gravedad.
ERROR_STATE() devuelve el número de estado del error.
ERROR_PROCEDURE()devuelve el nombre del procedimiento almacenado o desencadenador donde se produjo el error.
ERROR_LINE() devuelve el número de línea de la rutina que provocó el error.
ERROR_MESSAGE()...
Regístrate para leer el documento completo.