Versuchen Sie, Blöcke in SQL Server zu fangen

Versuchen Sie, Blöcke in SQL Server zu fangen
Egal wie perfekt Ihr Code versucht, es gibt immer die Chance auf Fehler. Es ist daher am besten, Fehlerbehandlungsmaßnahmen zu implementieren, um Fehler zu fangen und umzugehen, bevor sie die Funktionalität Ihrer Anwendungen brechen.

In diesem Handbuch lernen Sie, wie Sie in SQL Server die Fehlerbehandlung implementieren, indem Sie die Blöcke versuchen und Fangblöcke verwenden.

Wenn Sie erfahren möchten, wie Sie benutzerdefinierte Fehlermeldungen generieren, lesen Sie unser Tutorial im SQL Server Raiserror-Tutorial.

Einführung

Mit dem Versuch, Blöcke auf dem SQL -Server zu fangen, können Sie Fehler vorhersagen und freundlich behandeln, die in den SQL -Abfragen auftreten können.

Schließen Sie zunächst die SQL -Abfragen bei, die in einem Try -Block Fehler verursachen können. Sie können dann einen Fangblock hinzufügen, sobald eine Ausnahme erhöht ist.

Die Syntax für einen Try -Block ist wie gezeigt:

Beginnen Sie versuchen
-- Versuchen Sie, diese Aussagen auszuführen
Ende versuchen;

Nach dem Try -Block können Sie einen Fangblock festlegen, der ähnlicher Syntax wie gezeigt folgt:

Fangen Sie an
-- Aussagen fangen
Ende Fang

Zunächst versucht der SQL -Server, den Code im Try -Block auszuführen. Wenn kein Fehler/eine Ausnahme auftritt, überspringt es den Fangblock und fährt mit der Ausführung fort.

Wenn jedoch im Try -Block ein Fehler auftritt, springt die Ausführung in den Fang und führt den Code in diesem Block aus.

Die Syntax für einen vollständigen Versuch/Catch -Block ist wie gezeigt:

Beginnen Sie versuchen
-- versuche mich zu rennen
Endtrei
Fangen Sie an
-- Laufen Sie Meiferrorintry
Endcatch;

Sie können Maßnahmen implementieren, um den erhöhten Fehler im Fangblock zu verarbeiten, z. B. Meldungen mit Raiserror und Druckanweisungen. Denken Sie daran, dass die Fehlermeldung im Catch -Block nicht an die Anwendung zurückgegeben wird, es sei denn.

Sie können spezielle Funktionen verwenden, um detaillierte Informationen zum Fehler zu erhalten:

  1. ERROR_NUMBER () - Gibt einen internen Nachrichten -ID für den Fehler zurück.
  2. ERROR_SEVERITY () - Zeigt die Schweregradniveau des Fehlers an. Ein Wert zwischen 0 und 25 mit höherem Schweregrad zeigt ein hohes Schweregrad an. Beachten Sie, dass ein Schweregradwert von 20 - 25 tödlich ist.
  3. ERROR_STATE - Status der Fehlermeldung. Ein Wert zwischen 0 - 255.
  4. ERROR_MESSAGE - Eine beschreibende Meldung des Fehlers, der aufgetreten ist.
  5. ERROR_PROCEDURE () - Zeigt den Namen der Funktion, des Auslösers oder der gespeicherten Prozedur an, bei der der Fehler angehoben wurde.

Stellen Sie sicher, dass Sie die vorherigen Funktionen in einem Fangblock verwenden. Andernfalls geben sie einen Nullwert zurück.

SQL Server versuchen/fangen Beispiele

Verwenden wir eine Kluft durch Nullfehler, um zu veranschaulichen, wie der Try/Catch -Block verwendet wird. Erstellen Sie zunächst eine Prozedur, wie in den folgenden Abfragen gezeigt:

-- Fehlerinformationen erhalten
CreateProcedureGet_Errorinfo
als
selecterror_number () ASERRRORNumber,
ERROR_SEAVERITY () ASSEverity,
ERROR_STATE () ASErrorState,
ERROR_PROCEDURE () ASErrorProcedure,
ERROR_MESSAGE () ASERRRORMESSAGE,
ERROR_LINE () ASERRORLINE
beginre
-- DividebyzeroError
Wählen Sie 1/0;
Endtrei
Fangen Sie an
-- Ausführen von Proceduretogeterrorinfo
execget_errorinfo;
Endfang;

Im obigen Beispiel erstellen wir eine gespeicherte Prozedur, um Informationen zu einem Fehler abzurufen. Dann erhöhen wir einen Fehler, indem wir um Null getaucht werden.

Wenn wir die obige Abfrage ausführen, sollten wir eine Ausgabe erhalten wie:

Was passiert, wenn im Catch -Block wie gezeigt kein Fehler vorliegt:

beginre
-- kein Fehler
select100/5asResult;
Endtrei
Fangen Sie an
-- Ausführen von Proceduretogeterrorinfo
execget_errorinfo;
Endcatch;

Da im Try -Block keinen Fehler vorliegt, überspringt der SQL -Server die Fangblöcke und gibt das Ergebnis zurück. Ein Beispielergebnis ist wie gezeigt:

Abschluss

Diese Anleitung umfasste die Implementierung und Verwendung von Fehlerbehandlungen im SQL -Server mithilfe der Try/Catch -Blöcke. Darüber hinaus wurden spezielle Funktionen erläutert und zur Verfügung gestellt, um detaillierte Informationen über den Fehler abzurufen. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Informationen zu Tipps und Informationen zu SQL -Servern finden Sie in weiteren Linux -Hinweisartikeln.