Delen via


ERROR_MESSAGE (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft Fabric

Deze functie retourneert de berichttekst van de fout die het CATCH-blok van een TRY heeft veroorzaakt... CATCH-constructie die moet worden uitgevoerd.

Transact-SQL syntaxis-conventies

Syntaxis

ERROR_MESSAGE ( )   

Retourtypen

nvarchar(4000)

Retourwaarde

Wanneer een CATCH-blok wordt aangeroepen, ERROR_MESSAGE wordt de volledige tekst van het foutbericht geretourneerd waardoor het CATCH blok werd uitgevoerd. De tekst bevat de waarden die worden opgegeven voor eventuele substitueerbare parameters, bijvoorbeeld lengten, objectnamen of tijden.

ERROR_MESSAGE retourneert NULL wanneer aangeroepen buiten het bereik van een CATCH-blok.

Opmerkingen

ERROR_MESSAGE ondersteunt aanroepen binnen het bereik van een CATCH-blok.

ERROR_MESSAGE retourneert een relevant foutbericht, ongeacht hoe vaak het wordt uitgevoerd of waar het binnen het bereik van het CATCH blok wordt uitgevoerd. Dit contrasteert met een functie zoals @@ERROR, die alleen een foutnummer retourneert in de instructie direct na de instructie die een fout veroorzaakt.

In geneste CATCH blokken ERROR_MESSAGE wordt het foutbericht geretourneerd dat specifiek is voor het bereik van het CATCH blok waarnaar naar dat CATCH blok wordt verwezen. Bijvoorbeeld het CATCH blok van een buitenste TRY... CATCH-constructie kan een binnenste TRY...CATCH constructie hebben. Binnen dat binnenste CATCH blok wordt ERROR_MESSAGE het bericht geretourneerd van de fout die het binnenste CATCH blok heeft aangeroepen. Als ERROR_MESSAGE het buitenste CATCH blok wordt uitgevoerd, wordt het bericht geretourneerd van de fout die dat buitenste blok heeft CATCH aangeroepen.

Voorbeelden

Eén. ERROR_MESSAGE gebruiken in een CATCH-blok

In dit voorbeeld ziet u een SELECT instructie waarmee een fout tussen delen en nul wordt gegenereerd. Het CATCH blok retourneert het foutbericht.

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

Hier is het resultatenoverzicht.

-----------

(0 row(s) affected)

ErrorMessage
----------------------------------
Divide by zero error encountered.

(1 row(s) affected)

B. Het gebruik van ERROR_MESSAGE in een CATCH-blok met andere hulpprogramma's voor foutafhandeling

In dit voorbeeld ziet u een SELECT instructie waarmee een fout tussen delen en nul wordt gegenereerd. Samen met het foutbericht retourneert het CATCH blok informatie over die fout.

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  

Hier is het resultatenoverzicht.

-----------

(0 row(s) affected)

ErrorNumber ErrorSeverity ErrorState  ErrorProcedure  ErrorLine  ErrorMessage
----------- ------------- ----------- --------------- ---------- ----------------------------------
8134        16            1           NULL            4          Divide by zero error encountered.

(1 row(s) affected)

Zie ook

sys.messages (Transact-SQL)
TRY... CATCH (Transact-SQL)
ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
FOUT_PROCÉDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
FOUTTOESTAND (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)
Naslaginformatie over fouten en gebeurtenissen (database-engine)