TRY CATCH Block Explained
Every TRY block should have its
corresponding CATCH block. No statements are allowed between END TRY and BEGIN
CATCH.
Ø Valid Example: following is a valid usage of TRY CATCH
and BEGIN END blocks
BEGIN
BEGIN TRY
BEGIN
SELECT 'block a'
END
BEGIN
SELECT 'block
b'
RAISERROR(1,16,1)
END
END TRY
BEGIN CATCH
SELECT 'catch statement'
END CATCH
END
Ø Invalid Example: Following example is invalid due to
highlighted statements. You cannot have any statements in between END TRY and
BEGIN CATCH statements.
BEGIN
BEGIN TRY
BEGIN
SELECT 'block a'
END
BEGIN
SELECT 'block
b'
RAISERROR(1,16,1)
END
END TRY
BEGIN
BEGIN CATCH
SELECT 'catch statement'
END CATCH
END
END
Ø BEGIN TRY … END TRY is a single block of code, you can
have nested BEGIN END blocks inside it but BEGIN … END statements cannot span
across the TRY… CATCH block. That means these blocks cannot be intersecting
each other. Explained through a Venn Diagram:
No comments:
Post a Comment