Índice

La gestión de los errores en Transact SQL

La gestión de los errores permite anticiparse a los problemas que pueden aparecer durante la ejecución de un programa.

El principio consiste en probar el código en un primer bloque con BEGIN TRY … END TRY y después interceptar la excepción con BEGIN CATCH …. END CATCH.

Sintaxis

BEGIN   
   
... ...   
   
[BEGIN TRY   
... ...   
END TRY]   
[BEGIN CATCH   
... ...   
END CATCH]   
END;

Ejemplo

DECLARE @i int  
BEGIN  
BEGIN TRY  
SET @i = 2  
SET @i = @i / 0  
END TRY  
BEGIN CATCH  
SELECT ERROR_NUMBER() AS ErrorNumber  
    , ERROR_MESSAGE() AS ErrorMessage  
    , ERROR_LINE() AS ErrorLine;END CATCH  
END;

Resultado

ErrorNumber

ErrorMessage

ErrorLine

8134

División por cero

5

También es posible tratar la excepción.

DECLARE @i int  
BEGIN  
BEGIN TRY  
SET @i = 2  
SET @i = @i / 0  
END TRY  
BEGIN CATCH  
    IF @@ERROR = 8134  
        SET @i = @i / 1  
print @i  
END CATCH  
END;

Resultado

2

Es posible devolver un error gracias a la función RAISERROR(). Esta función acepta tres argumentos (constante o mensaje ...