El Try.. Catch funciona de manera similar como en C#, intenta la ejecución de un bloque de codigo y si marca algún error lo cacha.
Sintaxis en SQL:
BEGIN TRY
-- Instrucciones
END TRY
BEGIN CATCH
-- Manejo del error
END CATCH
A continuación muestro un ejemplo de como tratar un error que nos arroje SQL. La función ERROR_MESAGE propia de SQLServer contendrá la descripción del error.
Ejemplo, error división entre cero:
BEGIN TRY
SELECT 1/0
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH
-----------------------------
Error manejado por usuario
(1 row(s) affected)
SELECT 1/0
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH
-----------------------------
Error manejado por usuario
(1 row(s) affected)
Ahora, para lanzar un error manejado por el usuario utilizaremos la funcion RAISERROR, se utiliza para devolver mensajes a las aplicaciones con el mismo formato que un error del sistema o un mensaje de advertencia generado por SQL Server Database Engine.
Ejemplo:
IF (SELECT 10/2) = 5
BEGIN
RAISERROR('Error manejado por usuario',16,1)
END
-----------------------------
Error manejado por usuario
Para mas información de la funcion RAISERROR:
http://msdn.microsoft.com/es-es/library/ms177497(SQL.90).aspx
Espero que esto les sea de utilidad, hasta la próxima publicación.
------------------------------------------
Lo que se puede imaginar... se puede programar
No hay comentarios:
Publicar un comentario