Вы находитесь на странице: 1из 1

USO DE BLOCOS TRY...

CATCH EM TRANSACT-SQL Autor: Marcelo Honrio - NIN Data: 25/05/2010

Com o uso da construo TRYCATCH, similar aos recursos de controle de excees das linguagens VB.Net e C#, possvel tratar os erros no cdigo Transact. Uma construo TRY...CATCH consiste em duas partes: um bloco TRY e um bloco CATCH. Quando uma condio de erro for detectada em uma instruo Transact-SQL que est dentro de um bloco TRY, o controle passado para um bloco CATCH, onde o erro pode ser processado. Aps o bloco CATCH processar a exceo, o controle transferido para a primeira instruo Transact-SQL que segue a instruo END CATCH. Se a instruo END CATCH for a ltima instruo de um procedimento ou trigger, o controle retorna para o cdigo que invocou o procedimento armazenado ou trigger. As instrues Transact-SQL do bloco TRY que seguem a instruo que gerou o erro no sero executadas. Um bloco TRY inicia com a instruo BEGIN TRY e termina com a instruo END TRY. Podem ser especificadas uma ou mais instrues Transact-SQL entre as instrues BEGIN TRY e END TRY. Um bloco TRY deve ser seguido imediatamente por um bloco CATCH. Um bloco CATCH inicia com a instruo BEGIN CATCH e termina com a instruo END CATCH. Em Transact-SQL, cada bloco TRY associado com s um bloco CATCH. Abaixo, segue um exemplo simples que tenta executar uma converso de data em texto passando como parmetro uma varivel que indicar qual ser o formato de sada. Uma exceo ser disparada quando o parmetro no for aceito pela funo CONVERT.

SET NOCOUNT ON DECLARE @i INT SET @i = 0 WHILE(@i <= 1000) BEGIN BEGIN TRY SELECT @i, CONVERT(VARCHAR, GETDATE(), @i) SET @i = @i + 1 END TRY BEGIN CATCH SET @i = @i + 1 END CATCH END

Referncias: Microsoft MSDN. TRY...CATCH (Transact-SQL). http://msdn.microsoft.com/pt-br/library/ms175976.aspx Microsoft MSDN. CAST e CONVERT (Transact-SQL). http://msdn.microsoft.com/pt-br/library/ms187928.aspx

Вам также может понравиться