ERROR_LINE (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Fungsi ini mengembalikan jumlah baris kemunculan kesalahan yang menyebabkan blok CATCH try... KONSTRUKSI CATCH untuk dieksekusi.
Sintaks
ERROR_LINE ( )
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
COBA... 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)