Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Deze functie geeft het regelnummer terug van het voorkomen van een fout die het CATCH-blok van een TRY veroorzaakte... CATCH-constructie om uit te voeren.
Transact-SQL syntaxis-conventies
Syntaxis
ERROR_LINE ( )
Retourtype
int
Retourwaarde
Wanneer het wordt aangeroepen in een CATCH-blok, ERROR_LINE keert het terug
- het lijnnummer waar de fout optrad
- het regelnummer in een routine, als de fout optrad binnen een opgeslagen procedure of trigger
- NULL, als het buiten het bereik van een CATCH-blok wordt aangeroepen.
Opmerkingen
Een oproep kan ERROR_LINE overal binnen het bereik van een CATCH-blok plaatsvinden.
ERROR_LINE geeft het regelnummer terug waarop de fout is opgetreden. Dit gebeurt ongeacht de locatie van het ERROR_LINE gesprek binnen het bereik van het CATCH-blok, en ongeacht het aantal oproepen naar ERROR_LINE. Dit staat in contrast met functies, zoals @@ERROR. @@ERROR geeft een foutnummer terug in de instructie direct na die welke een fout veroorzaakt, of in de eerste instructie van een CATCH-blok.
In geneste CATCH-blokken ERROR_LINE geeft het foutregelnummer terug dat specifiek is voor de scope van het CATCH-blok waarin het wordt verwezen. Bijvoorbeeld, het CATCH-blok van een TRY... CATCH-constructie zou een geneste TRY kunnen bevatten... CATCH-constructie. Binnen het geneste CATCH-blok ERROR_LINE wordt het regelnummer teruggegeven voor de fout die het geneste CATCH-blok heeft aangeroepen. Als ERROR_LINE het in het buitenste CATCH-blok draait, geeft het het regelnummer terug voor de fout die dat specifieke CATCH-blok heeft opgeroepen.
Voorbeelden
Eén. ERROR_LINE gebruiken in een CATCH-blok
Dit codevoorbeeld toont een SELECT instructie die een deel-door-nul fout genereert.
ERROR_LINE geeft het regelnummer terug waar de fout is opgetreden.
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT ERROR_LINE() AS ErrorLine;
END CATCH;
GO
B. Het gebruik van ERROR_LINE in een CATCH-blok met een opgeslagen procedure
Dit voorbeeld toont een opgeslagen procedure die een deel-door-nul fout genereert.
ERROR_LINE geeft het regelnummer terug waar de fout is opgetreden.
-- 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. Gebruik ERROR_LINE in een CATCH-blok met andere foutafhandelingstools
Dit codevoorbeeld toont een SELECT instructie die een deel-door-nul fout genereert.
ERROR_LINE geeft het regelnummer terug waar de fout is opgetreden, en informatie die betrekking heeft op de fout zelf.
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
Zie ook
TRY... CATCH (Transact-SQL)
sys.messages (Transact-SQL)
ERROR_NUMBER (Transact-SQL)
ERROR_MESSAGE (Transact-SQL)
FOUT_PROCÉDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL)
FOUTTOESTAND (Transact-SQL)
RAISERROR (Transact-SQL)
@@ERROR (Transact-SQL)