DATABASE TRY CATCH MS SQL TRY CATCH MSSQL TRY CATCH SQL TRY CATCH TRY CATCH TRY CATCH İLE HATA YAKALAMA TRY CATCH İLE YAKALANAMAYAN HATALAR TRY CATCH İŞLEMLERİ TRY etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
DATABASE TRY CATCH MS SQL TRY CATCH MSSQL TRY CATCH SQL TRY CATCH TRY CATCH TRY CATCH İLE HATA YAKALAMA TRY CATCH İLE YAKALANAMAYAN HATALAR TRY CATCH İŞLEMLERİ TRY etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
TRY CATCH bloğu ile bazı hataların ne olduğunu yakalayabilmemiz mümkün değildir. Örneğin sorgumuzda yanlış bir tablo adı, yanlış bir kolon adı veya yanlış bir veritabanı adı kullandığımızda sorgunun geneli başarısız bir sorgu olması nedeni ile tam bir verim alamayız. Bu soruna geçici bir çözüm bulabilmek için sorgularımızı stored procedure yani saklı yordam olarak yazıp, bu saklı yordamları da TRY bloğu içinde kullanabiliriz. Bu yazımda stored procedure nedir ne değildir değinmeyeceğim. Ama genel olarak stored procedureler işlerimizi yönetebilmek amacı ile kullanabiliriz.
Stored procedure hakkında ilerleyen zamanlarda yeni yazılar yazacağım ama şimdilik bilgi almak isteyenler aşağıdaki yazımı okuyabilirler.
Şimdi basit bir örnek ile yazımızı sonlandıralım:
Örneklerimi AdventureWorks2012 veritabanı üzerinde yapıyorum.
1
2
3
4
5
6
7
8
BEGIN TRY
SELECT FROM Sales.SalesOrderDetail;
END TRY
BEGIN
CATCH
PRINT ERROR_NUMBER();
END CATCH;
GO
Örneğin bu sorgumda SELECT sonrası neyi listeleyeceğimi belirtmedim. Dolayısı ile syntax hatası yapıyorum. Alacağım hata aşağıdaki gibi:
2013121801
Bir örnek daha yapalım.
1
2
3
4
5
6
BEGIN TRY
SELECT SalladımKolonAdini FROM Sales.SalesOrderDetail;
END TRY
BEGIN CATCH
PRINT ERROR_NUMBER();
END CATCH;
Bu örneğimde de olmayan bir kolon adı listelemek istedim yine hata alırım.2013121802
Görüleceği üzere sorgumda hata numarasını da yazdırmak için kod yazdım ama TRY ile yakalayamadım.

TRY CATCH İle Yakalanamayan Hatalar