ERROR_LINE (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Fungsi ini mengembalikan jumlah baris kemunculan kesalahan yang menyebabkan blok CATCH try... KONSTRUKSI CATCH untuk dieksekusi.

Konvensi sintaks transact-SQL

Sintaksis

ERROR_LINE ( )

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Hasil

int

Tampilkan Nilai

Ketika dipanggil dalam blok CATCH, ERROR_LINE mengembalikan

  • nomor baris tempat kesalahan terjadi
  • nomor baris dalam rutinitas, jika kesalahan terjadi dalam prosedur atau pemicu tersimpan
  • NULL, jika dipanggil di luar cakupan blok CATCH.

Keterangan

Panggilan untuk ERROR_LINE dapat terjadi di mana saja dalam cakupan blok CATCH.

ERROR_LINE mengembalikan nomor baris tempat kesalahan terjadi. Ini terjadi terlepas dari ERROR_LINE lokasi panggilan dalam cakupan blok CATCH, dan terlepas dari jumlah panggilan ke ERROR_LINE. Ini berbeda dengan fungsi, seperti @@ERROR. @@ERROR mengembalikan nomor kesalahan dalam pernyataan segera setelah yang menyebabkan kesalahan, atau dalam pernyataan pertama blok CATCH.

Dalam blok CATCH berlapis, ERROR_LINE mengembalikan nomor baris kesalahan khusus untuk cakupan blok CATCH tempat blok tersebut direferensikan. Misalnya, blok CATCH dari TRY... Konstruksi CATCH dapat berisi TRY berlapis... KONSTRUKSI CATCH. Dalam blok CATCH berlapis, ERROR_LINE mengembalikan nomor baris untuk kesalahan yang memanggil blok CATCH berlapis. Jika ERROR_LINE berjalan di blok CATCH luar, ia mengembalikan nomor baris untuk kesalahan yang memanggil blok CATCH tertentu.

Contoh

J. Menggunakan ERROR_LINE dalam blok CATCH

Contoh kode ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan divide-by-zero. ERROR_LINE mengembalikan nomor baris tempat kesalahan terjadi.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_LINE() AS ErrorLine;  
END CATCH;  
GO  

B. Menggunakan ERROR_LINE dalam blok CATCH dengan prosedur tersimpan

Contoh ini menunjukkan prosedur tersimpan yang menghasilkan kesalahan divide-by-zero. ERROR_LINE mengembalikan nomor baris tempat kesalahan terjadi.

-- Verify that the stored procedure does not already exist.  
IF OBJECT_ID ( 'usp_ExampleProc', 'P' ) IS NOT NULL   
    DROP PROCEDURE usp_ExampleProc;  
GO  
  
-- Create a stored procedure that  
-- generates a divide-by-zero error.  
CREATE PROCEDURE usp_ExampleProc  
AS  
    SELECT 1/0;  
GO  
  
BEGIN TRY  
    -- Execute the stored procedure inside the TRY block.  
    EXECUTE usp_ExampleProc;  
END TRY  
BEGIN CATCH  
    SELECT ERROR_LINE() AS ErrorLine;  
END CATCH;  
GO  

C. Menggunakan ERROR_LINE dalam blok CATCH dengan alat penanganan kesalahan lainnya

Contoh kode ini menunjukkan SELECT pernyataan yang menghasilkan kesalahan divide-by-zero. ERROR_LINE mengembalikan nomor baris tempat kesalahan terjadi, dan informasi yang berkaitan dengan kesalahan itu sendiri.

BEGIN TRY  
    -- Generate a divide-by-zero error.  
    SELECT 1/0;  
END TRY  
BEGIN CATCH  
    SELECT  
        ERROR_NUMBER() AS ErrorNumber,  
        ERROR_SEVERITY() AS ErrorSeverity,  
        ERROR_STATE() AS ErrorState,  
        ERROR_PROCEDURE() AS ErrorProcedure,  
        ERROR_LINE() AS ErrorLine,  
        ERROR_MESSAGE() AS ErrorMessage;  
END CATCH;  
GO  

Lihat Juga

MENCOBA... CATCH (Transact-SQL)
sys.messages (Transact-SQL)
ERROR_NUMBER (T-SQL)
ERROR_MESSAGE (T-SQL)
ERROR_PROCEDURE (T-SQL)
ERROR_SEVERITY (T-SQL)
ERROR_STATE (T-SQL)
RAISERROR (Transact-SQL)
@@ERROR (T-SQL)