Buscar este blog

miércoles, 4 de julio de 2012

Errores manejados en SQLServer, TRY ... CATCH, RAISERROR

Hola, hoy veremos como manejar los errores en SQLServer 2005, y tambien como lanzar errores personalizados con la instrucción RAISERROR


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)

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