Aracılığıyla paylaş


ERROR_LINE (Transact-sql)

try… catch bloğu neden hata, oluştuğu satırın numarasını döndürürcatch yapı çalıştırılacak.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

ERROR_LINE ( )

Dönüş Türü

int

Dönüş Değeri

Bir catch bloğu çağrıldığında:

  • Hatanın oluştuğu satırın numarasını döndürür.

  • Bir saklı yordam veya tetikleyiciyi hata oluştu bir yordam satır numarasını döndürür.

Bir catch bloğu kapsamı dışında null döndürür.

Açıklamalar

Bu fonksiyon, herhangi bir catch bloğu kapsamında çağrılabilir.

ERROR_LINE, denir ya da nereye onun'seslenmek catch bloğu kapsamı içinde kaç kez bakılmaksızın hatanın oluştuğu satırın numarasını döndürür. Bu hangi numaralı hata hemen bir hata aşağıdaki deyimi ya da bir catch bloğu ilk deyiminde dönmek gibi işlevleri ile @@ error, tezat.

Yuvalanmış catch bloklarında ERROR_LINE hata verir hangi o içinde başvuruda bulunulan blok catch kapsam için özel satır numarası. Örneğin, try… catch bloğuİç içe try… catch yapısı içerebilircatch yapı. Yuvalanmış catch bloğu içinde ERROR_LINE yuvalanmış catch bloğu çağrıldığında hata satır numarasını döndürür. ERROR_LINE dış catch bloğu içinde çalıştırılırsa bu catch bloğu çağrıldığında hata satır numarasını döndürür.

Örnekler

A.ERROR_LINE bir catch bloğu kullanma

Aşağıdaki kod örneği gösterildiği bir SELECTbir tarafından sıfıra bölme hatası üretir deyimini. Hatanın oluştuğu satırın numarasını döndürür.

USE AdventureWorks2012;
GO

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

USE AdventureWorks2012;
GO

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

B.ERROR_LINE ile bir saklı yordam bir catch bloğu kullanma

Aşağıdaki kod örneği, bir tarafından sıfıra bölme hatası oluşturacak bir saklı yordam gösterir. ERROR_LINEsaklı yordam hatanın oluştuğu satırın numarasını döndürür.

-- 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

-- 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.ERROR_LINE bir catch bloğu diğer hata işleme araçları ile kullanma

Aşağıdaki kod örneği gösterildiği bir SELECTbir tarafından sıfıra bölme hatası üretir deyimini. Hatanın oluştuğu satır numarası ile birlikte, ilgili hata döndürülür.

USE AdventureWorks2012;
GO

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

USE AdventureWorks2012;
GO

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

Ayrıca bkz.

Başvuru

DENEYİN...catch (Transact-sql)

sys.messages (Transact-sql)

error_number (Transact-sql)

error_message (Transact-sql)

error_procedure (Transact-sql)

ERROR_SEVERITY (Transact-sql)

error_state (Transact-sql)

RAISERROR (Transact-SQL)

@@ error (Transact-sql)