Aracılığıyla paylaş


error_number (Transact-sql)

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

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

Sözdizimi

ERROR_NUMBER ( )

Dönüş Türleri

int

Dönüş Değeri

Bir catch bloğu çağrıldığında çalıştırılacak catch bloğu nedeniyle oluşan hata iletisi hata 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.

Ya da yakalamak kapsamı içinde koşmak olduğu blok error_number hata numarası ne olursa olsun kaç kez çalıştırmak olduğunu döndürür. @@ error yalnızca hemen bir hata neden bir sonraki deyime, ya da ilk deyimi bir catch bloğu içinde hata numarasını döndüren, farklı olarak budur.

Yuvalanmış catch bloklarında error_number hata verir hangi o başvurulan içinde blok catch kapsam için özel sayısı. Örneğin, bir dış deneyin catch bloğu...catch yapısı yuvalanmış DENEMEK olabilir...catch yapı. Yuvalanmış catch bloğu, error_number yuvalanmış catch bloğu çağrılan hata numarasını döndürür. error_number dış catch bloğu içinde çalıştırılırsa bu catch bloğu çağrılan hata numarasını döndürür.

Örnekler

A.error_number 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. Hata 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_NUMBER() AS ErrorNumber;
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;
END CATCH;
GO

B.error_number 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. Hata numarası ile 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

sys.messages (Transact-sql)

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

ERROR_LINE (Transact-sql)

error_message (Transact-sql)

error_procedure (Transact-sql)

ERROR_SEVERITY (Transact-sql)

error_state (Transact-sql)

RAISERROR (Transact-SQL)

@@ error (Transact-sql)