Aracılığıyla paylaş


error_message (Transact-sql)

try… catch bloğu neden hata iletisi metni verircatch yapı çalıştırılacak.

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

Sözdizimi

ERROR_MESSAGE ( ) 

Dönüş Türleri

nvarchar(2048)

Dönüş Değeri

Bir catch bloğu çağrıldığında çalıştırılacak catch bloğu neden hata iletisinin tam metni verir. Metin sağlanan uzunlukları, nesne adlarını veya süreleri gibi değiştirilebilir parametreler için değerler içerir.

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

Açıklamalar

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

Hata iletisini nasıl olursa olsun kaç kez error_message döndürür çalıştırıldığı veya catch bloğu kapsamı içinde çalıştırdığı. @@ error, yalnızca hemen bir hata neden bir sonraki deyime ya da ilk deyimi bir catch bloğu hata numarasını verir gibi fonksiyonları farklı olarak budur.

Yuvalanmış catch bloklarında error_message hata iletisinin belirli yakalamak kapsamını verir hangi o içinde başvuruda bulunulan engellemek. Örneğin, bir dış deneyin catch bloğu...catch yapısı yuvalanmış DENEMEK olabilir...catch yapı. Yuvalanmış catch bloğu içinde error_message, yuvalanmış catch bloğu çağrıldığında hata iletisi döndürür. error_message dış catch bloğu içinde çalıştırılırsa bu catch bloğu çağrılan hata iletisi döndürür.

Örnekler

A.error_message 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 iletisi 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_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_MESSAGE() AS ErrorMessage;
END CATCH;
GO

B.error_message 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 iletisi 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_number (Transact-sql)

error_procedure (Transact-sql)

ERROR_SEVERITY (Transact-sql)

error_state (Transact-sql)

RAISERROR (Transact-SQL)

@@ error (Transact-sql)