Anatomi error dan error yang tak bisa ditangkap

Transaksi dan Penanganan Kesalahan di SQL Server

Miriam Antona

Software Engineer

Anatomi error

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).
Transaksi dan Penanganan Kesalahan di SQL Server

Anatomi error

Nomor error

Pesan error yang menyorot teks "Msg 2627", yaitu nomor error.

  • Error SQL: 1–49999
  • Error buatan sendiri: mulai 50001
    select * from sys.messages
| message_id | language_id | severity | ... | text                                                            |
|------------|-------------|----------|-----|-----------------------------------------------------------------|
| ...        | ...         | ...      | ... | ...                                                             |
| 2627       | 1033        | 14       | ... | Violation of %ls constraint '%.*ls'. Cannot insert duplicate... |
| ...        | ...         | ...      | ... | ...                                                             |
Transaksi dan Penanganan Kesalahan di SQL Server

Anatomi error

Tingkat keparahan (severity)

Pesan error yang menyorot teks "Level 14", yaitu tingkat keparahan error.

  • 0–10: pesan informasional
  • 11–16: error yang bisa diperbaiki pengguna (pelanggaran constraint, dll.)
  • 17–24: error lain (masalah software, fatal)
Transaksi dan Penanganan Kesalahan di SQL Server

Anatomi error

State

Pesan error yang menyorot teks "State 1", yaitu status error.

  • 1: jika SQL Server menampilkan error
  • 0–255: error buatan sendiri
Transaksi dan Penanganan Kesalahan di SQL Server

Anatomi error

Line

Pesan error yang menyorot teks "Line 1", yaitu baris tempat error terjadi.

Procedure

Pesan error yang menyorot teks "Procedure Insert_product", yaitu nama stored procedure tempat error terjadi.

Transaksi dan Penanganan Kesalahan di SQL Server

Error yang tak bisa ditangkap

  • Severity di bawah 11 (11–19 bisa ditangkap)

  • Severity 20 atau lebih yang memutus koneksi

  • Error kompilasi: objek atau kolom tidak ada

Transaksi dan Penanganan Kesalahan di SQL Server

Error tak bisa ditangkap - Contoh error kompilasi

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'.
Transaksi dan Penanganan Kesalahan di SQL Server

Ayo berlatih!

Transaksi dan Penanganan Kesalahan di SQL Server

Preparing Video For Download...