Delen via


ERROR_SEVERITY (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 ernstwaarde van de fout waarin een fout optreedt, als deze fout het CATCH blok van een TRY...CATCH constructie heeft veroorzaakt dat wordt uitgevoerd.

Transact-SQL syntaxis-conventies

Syntaxis

ERROR_SEVERITY ( )

Retourtypen

Int

Retourwaarde

Wanneer een CATCH blok wordt aangeroepen waarin een fout optreedt, ERROR_SEVERITY wordt de ernstwaarde geretourneerd van de fout waardoor het CATCH blok is uitgevoerd.

ERROR_SEVERITY retourneert NULL indien aangeroepen buiten het bereik van een CATCH blok.

Opmerkingen

ERROR_SEVERITY ondersteunt aanroepen binnen het bereik van een CATCH blok.

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

ERROR_SEVERITY werkt doorgaans in een geneste CATCH blok. ERROR_SEVERITYretourneert de waarde voor de ernst van de fout die specifiek is voor het bereik van het CATCH blok waarnaar wordt verwezen.CATCH Het blok van een buitenste CATCH constructie kan bijvoorbeeld TRY...CATCH een binnenste TRY...CATCH constructie hebben. Binnen dat binnenste CATCH blok wordt de ernstwaarde geretourneerd van de fout die het binnenste ERROR_SEVERITY blok CATCH heeft aangeroepen. Als ERROR_SEVERITY het buitenste CATCH blok wordt uitgevoerd, wordt de ernstwaarde van de fout geretourneerd van de fout die dat buitenste blok heeft CATCH aangeroepen.

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

Eén. ERROR_SEVERITY gebruiken in een CATCH-blok

In dit voorbeeld ziet u een opgeslagen procedure waarmee een fout tussen delen en nul wordt gegenereerd. ERROR_SEVERITY retourneert de ernstwaarde van die fout.

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

Hier is het resultatenoverzicht.

-----------

(0 row(s) affected)

ErrorSeverity
-------------
16

(1 row(s) affected)

B. Gebruik ERROR_SEVERITY in een CATCH-blok met andere hulpprogramma's voor foutafhandeling

In dit voorbeeld ziet u een SELECT instructie waarmee een verdeling wordt gegenereerd door nul. De opgeslagen procedure retourneert informatie over de 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)