Exception handling in SQL
Whenever an exception occurs our code gets disrupted. Exception handling is a way to handle these disruptions, Like we may log when an exception occurs or we may raise error when any exception occurs. We can use TRY and CATCH to handle exceptions.
Syntax
BEGIN TRY
SQL statements
END TRY
BEGIN CATCH
Logging errors
END CATCH;
A simple example of an exception
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
Output after executing above query
![](data:image/png;base64,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)
1) ERROR_NUMBER() returns the number of the error.
2) ERROR_SEVERITY() returns the severity of error.
3) ERROR_STATE() returns the error state of number.
4) ERROR_PROCEDURE() returns the name of the stored procedure or trigger where the error occurred.
5) ERROR_LINE() returns the line number at which error occurred.
6) ERROR_MESSAGE() returns the text message of error.
You can log these in a table as well.
Errors that are not affected by TRY CATCH
Here, I am trying to get all info from non existing table Employees. Here, error will not be catch.
BEGIN TRY
SELECT * FROM Employees
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
Output after executing above query
![](data:image/png;base64,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)
If this error occurred inside stored procedure then it will be caught by CATCH block
Suppose "SELECT * FROM Employees" is inside SP and we call SP from try block then error will be caught at catch block.
Example
Assuming employees table doesn't exists. Execute following SP.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASAAAAB1CAIAAABh1asnAAAIy0lEQVR4nO2dzWHrrBJAVRcFUcctgV22r4G7pYAUkY1KuEXwFkho+BkkO54vjn3OJjaWEcgcgwh4lgTwOP4HNctPfyIArwyCARiCYACGIBiAITPBok/LkpYlLS6tIfmYUtxT9vTMGup08ZLvUsbHLymss3w0gquOdyEXfZaJrNe8vmp51uTq9Fjn4IJ4r7vnuk2rvGy4EL0L6/lbGtYjiyOrm3Ops7qnHG/A8meneSH6tPjtcW4HPm6Py2cR/fFYpqc1OdlQ1uRcij6Vj6AcHP2WbXDbq7N8FPzevrV8ZDnbejklfVTfqjzxOD77UxyTLc0Ll26+biOiP5ryGtyVhh2cj13iGpwTn4e7V7BBbiDYerBWsDU5Pzg69Q3Ct+m+ayKl9+s/xCJYn3+fj4YUbDuXVs6uBW8FuFDftjxSsPor41Swi9dtWBrVBNkrCX2brqpc7V2J6JuDnfP5wOjLO/ILIfjjBGt78l4wce79tFt53P4l6I7SDss/Sa96cvfNLwg7FMFGMmRkQwkuiQ9MHeQEtwnQt6GhYNcHS5nTHqyUs2rlWwmSCyf1HZenFqw8vSLYxes2QB8RNh2SbItaD6a1Zh9Tij7/Xfc3B9d4UuXZCxacsDD6RXTf8shSNq38Wro8Y/T3D3GtuUew9oZnTz/9pu91elQP1hdpWM77BLvSg10R7LbrNuRonbH0JouPo5sqL750JkNE0YPtqVv2PqZaMJnLWmfaCra255RaHa+VVK38s3qJK7AMKvgkLFmtwRBR+byPNipuPNKw7eajfH0T79tXNcGuI3uwk3JOhoin9W24MkQU2d563bTSKA239qTm/B6sTs35doLNDLpJsPJEHKSVf1YvedRv68HqG/GUkh/d9K+hmhiQx2vDwpJezjIXrDl+yIlgdTknkxyn9a3KUwtWytBck+H1uXLdNJqWXBqunPxQ37IP/FKnxNbWpz3YZNg5GiLKhNaT4Hysx4pa+bX0Kv+9tE+IKliqZ8C38sf2hiG4bVK7n3aPYi47XwsvnjZvOVpnn8+0ArKQ4oqPy7m9qEzT9/VVy9NN08vPd5D/TddtWt921CROrL5wDKYOu9qR1+JjSfUxv8WFdd3vvYJz3svphm6k2py3Pkfb/oXqp+UfpquVfTJmggEUHjwPf9//734h6v/BAAryX9vfzOp3TE08DpZKARiCYACGIBiAIQgGYAiCARiCYACGIBiAIapgw42SmWPFg79hSS7AGzLtwbqNkqnbOHh9UwnAGzITbLhR8o7V7gBvy0ywyYr4W/dEArwnumDTjZIZud0DAHpUweYbJQvDvVgAkNFnEZWNkn6pd+wq4gFA0gSbbJT09e7A99jUA3An/KMZwBAEAzAEwQAMQTAAQxAMwBAEAzAEwQAMQTAAQxAMwJCxYP1POpeYQJOIjHKVfdlFNlzTmBP3uFCszYeXRf1l3xLJLqWUYhX1dBiRsYna2Kyi6neRRZ+cU4OeALwG6m/Tt4LNIzKeGTIULJQgIwgGL8pMsGHIj/GITg9gV941EGzdR5IIBi/K5R5saUOzekUwX99uldyGgm1qIRi8KEqEy0YwLbj48XK7MWzyUznNAWtIPiAYvCbXejCxz1KLyFiij2euC5YzZwoRXpKxYP10fDul3t+eNUEfZchWZZq+ZCtnKQFeCSJcAhhChEsAQ1gqBWAIggEYgmAAhiAYgCEIBmAIggEYgmAAhvykYH2kTHVDZzxb2j/aAHosInHbyq/hSpQrv/797/Pj79eNlZKLV6JayKacGd8ULJ5sSF2DWxruDeJWsnL8Kvoj+DHBtEiZ2obO1K1vnB8ffbWHbVk2wfLBJSBTs4RywNfXVxHs3+ffz3+nVSvrM7ci+UF9q7rLcrr9XfVyM+dOotiswR1KrMF9L0pilRt8g6cQbJjeR3+eC9ZuAJ2GfdEing34+vvn4OOCX5tgTQXbLwJlp+lWsDU5v4sqH+vsSkQvNpa7ZVmc88uyLD5Gv+QHKeUXQvBHf7cOc2vqVfrH/eJt/Z3bF4K7o/OUvWp9IcbpMn/nvvkF8Tw8xxBRNLLJT3Rogt2xAfQGwVL69/nx5+Pz8+OSXUnUSxMsOH3vTy55NjAmF7aiXhFMa80+phR9/rsGt3fdjSfV9egFC05YGP0iumB55J59ajrUcryWLs8Y/f1D3GfjKSY5ZKTMx/RgDxVsu//69/nx8XnleK0Ha7YmpFPBxEaee3qwPTWllKLPBknB6v1+rnnq6u1Grr5eUqvjtZI6uCncTz9M34rYJ/56nkKwJCJlToKsS8HON4BO97/cJNitDGU4yhnrPT76EDEfXLbb3XAPVqfmfDvBZgbdJFh5Ig6qPa/fN63HdhQ92HfRImVqGzrTNcHK8XIiIZ9OtpCfFCz3ZnK/3HCSo76HvFWwra1PezDZiBuBRkNEmdB6EpyP9Vgx+vE8pJZe5b+X9gX4ScEu/e5i/rKPg3Rt2r18MnLGvHxe2o/5PAp50naeXdwoBnc8bqfp1zrCqHiqMRh5LT6WVB/z+MuFdd3vvYJz3svphnUrizaEq8/Rtv/9Hq++FMOh4DhdO/i38yxDRPiPefA8fN19QQHB3hExIf7dW53XnJp4HAgGYAiCARiCYACG2Aq2TGa+AN4ABAMwBMEADEEwAEOuRrjMiwzUyJTN72bvKyQQDN4cVYBZJMthZEoRpK+sZ0UweHPOBfPdcu9xZMo4CAiGYPDmzATTfkBiHJmyFiw/RTB4cxaxH76NYKT2YMPIlAgG0HHtHkygRqZkiAjQcVUwuZFxHJmyFswzyQFwwzT9kuIkMmU3TZ93LiAYvDn8oxnAEAQDMATBAAxBMABDEAzAEAQAMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABDEAzAEAQDMATBAAxBMABD/g+CXkBOoTskvAAAAABJRU5ErkJgggA=)
Now, call this SP within try block.
BEGIN TRY
EXECUTE GetEmployees
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
Output after executing above script
![](data:image/png;base64,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)
0 Comment(s)