Try-Catch yapısı normal programlama dillerindeki ile aynı şekilde kullanılır. Aşağıdaki örnekte TRY içine 0’a bölme işlemi yazdım, program, bu kodu denedikten sonra hata yakalama (CATCH) geçecektir.
BEGIN TRY SELECT 1/0 --Sıfıra bölüm END TRY BEGIN CATCH SELECT ERROR_MESSAGE() AS Hata END CATCH

BEGIN TRY SELECT 1/0 --Sıfıra bölüm END TRY BEGIN CATCH SELECT ERROR_MESSAGE() AS Hata, ERROR_NUMBER() AS HataNumarasi, ERROR_STATE() AS HataKodu, ERROR_SEVERITY() AS HataDegeri, ERROR_LINE() AS HatayaSebepOlanSatir, ERROR_PROCEDURE() AS HatayaSebepOlanSPveyaTrigger END CATCH

Hata kodlarının bir kaç özelliği bulunuyor. Bunlar;
ERROR_MESSAGE(): İngilizce hata mesajı.
ERROR_NUMBER(): Hata numarası. (Bilgisayarımız hata verdiği zaman numara yazdığını görürsünüz. Aynı yapı)
ERROR_STATE(): Hata kodu. Hata numaraları birden farklı yerden çıkmış olabilir, bunu biraz daha özelleştirmek için ERROR_STATE() kullanılır. ERROR_NUMBER() mahalle numarası, ERROR_STATE() sokak numarası gibi düşünebiliriz.
ERROR_SEVERITY(): Hatanın değerini gösterir.
ERROR_LINE(): Hataya sebep olan satırı döndürür.
ERROR_PROCEDURE(): Hatanın hangi “Stored Procedure” ‘de veya “Trigger” ‘da olduğunu döndürür.