Anasayfa / Yazılım / SQL / TRY CATCH İle Yakalanamayan Hatalar

TRY CATCH İle Yakalanamayan Hatalar

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.

Stored Procedure

Şimdi basit bir örnek ile yazımızı sonlandıralım:

Örneklerimi AdventureWorks2012 veritabanı üzerinde yapıyorum.

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.

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.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir