SQL Server’da Try-Catch Kullanımı

Herkese merhaba,

Bu yazıda size SQL Server’da Try-Catch kullanımından bahsedeceğim.

SQL Server’da Try-Catch hata yakalamada kullanılan bir mekanizmadır. Yapılan hatayı yakalamayı ve bu hata hakkında bilgi sahibi olmamızda önemli bir rolü vardır. Genel olarak kullanım mantığı aşağıdaki gibidir.

BEGIN TRY 
--Hata oluşabilecek kod bloğu buraya yazılır.
END TRY 
BEGIN CATCH 
--Hata oluşunca hatanın yakalandığı kısım buraya yazılır.
END CATCH

Genel olarak yazım mantığı yukarıdaki gibidir. Kullanım konusunda aşağıdaki örneği inceleyelim.

BEGIN TRY
 
    SELECT Islem = 255/0
END TRY
BEGIN CATCH
    SELECT [HataSatırı] = ERROR_LINE(),
           [HataSayısı] = ERROR_NUMBER(),
           [HataÖnemi] = ERROR_SEVERITY(),
           [HataDurumu] = ERROR_STATE(),
           [HataMesajı] = ERROR_MESSAGE()
END CATCH

Burada HataSatırı, HataSayısı, HataÖnemi, HataDurumu ve HataMesajı gibi kısımlar bize hata ile ilgili bilgiler sunar. Bu kısımların karşılarında olan fonksiyonlar bu değerleri bize çekerek gösterir.

Error_Number() -> Hata numarasını elde eder.

Error_Severity() -> Hata derecesini verir.

Error_Line() -> Hatanın sebep olduğu hata numarasını verir.

Error_Procedure() -> Hataya neden olan Stored Procedure adını verir.

Error_Message() -> Hatayı açıklayan mesajı verir.

Error_State() -> Hatanın kod değerini sunar.

Error_Severity() fonksiyonunda hata dereceleri aşağıdaki gibidir.
  • 0 veya 10 : Kullanıcı veri girişinden kaynaklanan hatalar
  • 11-16 arası: Kullanıcının düzeltebileceği hatalar
  • 17 : Yetersiz kaynak hataları (Diskin dolu olması ya da tablonun salt okunur olması gibi)
  • 18 : Yazılımdan kaynaklanan hatalar
  • 19 : Constraint’lere takılan hatalar
  • 20-25 arası: Kritik hatalar

Not : TRY-CATCH çalışma anındaki hataları yakalayabilir. SQL kodunda olan syntax yani yazım yanlışı hatalarını yakalayamaz.

Genel olarak kullanımı bu şekildedir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

1.266 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!