Hata yapısı ve yakalanamayan hatalar

SQL Server'da İşlemler ve Hata Yönetimi

Miriam Antona

Software Engineer

Hata yapısı

INSERT INTO products (product_name, stock, price)
    VALUES ('Trek Powerfly 5 - 2018', 10, 3499.99);
Msg 2627, Level 14, State 1, Line 1
Violation of UNIQUE KEY constraint 'unique_name'. 
Cannot insert duplicate key in object 'dbo.products'. 
The duplicate key value is (Trek Powerfly 5 - 2018).
SQL Server'da İşlemler ve Hata Yönetimi

Hata yapısı

Hata numarası

"Msg 2627" metnini vurgulayan, hata numarasına karşılık gelen bir hata mesajı.

  • SQL hataları: 1–49999
  • Özel hatalar: 50001 ve üzeri
    select * from sys.messages
| message_id | language_id | severity | ... | text                                                            |
|------------|-------------|----------|-----|-----------------------------------------------------------------|
| ...        | ...         | ...      | ... | ...                                                             |
| 2627       | 1033        | 14       | ... | Violation of %ls constraint '%.*ls'. Cannot insert duplicate... |
| ...        | ...         | ...      | ... | ...                                                             |
SQL Server'da İşlemler ve Hata Yönetimi

Hata yapısı

Şiddet düzeyi

"Level 14" metnini vurgulayan, hatanın şiddet düzeyine karşılık gelen bir hata mesajı.

  • 0-10: bilgilendirme iletileri
  • 11-16: kullanıcı tarafından düzeltilebilir hatalar (kısıt ihlali vb.)
  • 17-24: diğer hatalar (yazılım sorunları, kritik hatalar)
SQL Server'da İşlemler ve Hata Yönetimi

Hata yapısı

Durum (State)

"State 1" metnini vurgulayan, hatanın durumuna karşılık gelen bir hata mesajı.

  • 1: SQL Server hatayı gösterirse
  • 0-255: özel hatalar
SQL Server'da İşlemler ve Hata Yönetimi

Hata yapısı

Satır

Hatanın oluştuğu satıra karşılık gelen "Line 1" metnini vurgulayan bir hata mesajı.

Prosedür

Hatanın oluştuğu saklı yordamın adına karşılık gelen "Procedure Insert_product" metnini vurgulayan bir hata mesajı.

SQL Server'da İşlemler ve Hata Yönetimi

Yakalanamayan hatalar

  • Şiddet 11'in altında (11-19 yakalanabilir)

  • Bağlantıyı durduran Şiddet 20 ve üzeri

  • Derleme hataları: var olmayan nesneler ve sütunlar

SQL Server'da İşlemler ve Hata Yönetimi

Yakalanamayan hatalar - Derleme hatası örneği

BEGIN TRY
    SELECT non_existent_column FROM products;
END TRY
BEGIN CATCH
    SELECT 'You are in the CATCH block' AS message;
END CATCH
Msg 207, Level 16, State 1, Line 2
Invalid column name 'non_existent_column'.
SQL Server'da İşlemler ve Hata Yönetimi

Hadi pratik yapalım!

SQL Server'da İşlemler ve Hata Yönetimi

Preparing Video For Download...