Błędy są nieuniknione, jeśli chodzi o rozwój. Jest to zatem dobry plan, aby upewnić się, że wdrożyłeś pewne środki, aby błędy nie przełamały funkcjonalności aplikacji.
SQL Server pozwala nam korzystać z instrukcji rzutów, aby podnieść wyjątek. Następnie przenosimy kontekst wykonania do bloku próbowania, aby obsłużyć błąd.
Składnia
Poniższy fragment kodu pokazuje składnię instrukcji rzutów:
Rzut [error_numer,Argumenty w dostarczonej składni zawierają następujące:
Uwaga: każde stwierdzenie przed klauzulą rzutów musi zostać zakończone półkolisem. Serwer SQL wymaga również, aby rzut uwzględnił poprzednie argumenty. Jeśli oświadczenie nie ma poprzednich argumentów, musi być zamknięte w bloku try/catch.
Składnia jest następująca:
Zacznij próbowaćNie możesz użyć % znaku w parametrze ERROR_MESSAGE. Jest tak, ponieważ jest to postać zastrzeżona. Jeśli chcesz dołączyć%znaku w komunikacie o błędzie, upewnij się, że uciekajcie, mając podwójny procent znaków (%%).
Przykłady instrukcji rzutów SQL Server
Rzućmy okiem na kilka przykładów oświadczenia rzutów w akcji.
SQL Server za pomocą instrukcji rzutów, aby rzucić wyjątek
Poniższy przykład pokazuje użycie instrukcji rzutu w celu podniesienia wyjątku:
rzut 50001, „[Fail] - żądana wartość nie została znaleziona.', 1;W tym przykładzie używamy instrukcji rzutów, aby podnieść wyjątek z kodem błędu 50001 i stanem 1.
Powstałe wyjście jest następujące:
Błąd SQL [50001] [S0001]: [Fail] - żądana wartość nie została znaleziona.SQL Server Rethrows wyjątek za pomocą instrukcji rzutów
Możemy również użyć wyjątku rzutów, aby ponownie przetworzyć ostatni wyjątek. Przykładowy kod jest następujący:
Stół zrzutu, jeśli istnieje t;Poprzednie zapytanie powinno wydrukować następujące czynności:
złapany błądKorzystanie z formatmessage do wyrzucenia dostosowanej wiadomości
Poniższy przykład pokazuje, jak korzystać z funkcji FormatMessage, aby rzucić wyjątek z dostosowanym komunikatem:
EXEC SYS.SP_ADDMESSAGE @MSGNUM = 50001,W takim przypadku funkcja FormatMessage pozwala nam dodać dostosowane komunikaty, w tym zmienne. Ponownie możesz sprawdzić dokumenty na SQL Server SP_ADDMESSAGE (), aby dowiedzieć się więcej.
Powstały komunikat o błędzie jest następujący:
Błąd SQL [50001] [S0001]: dostosowana wiadomość, w tym zmienna: 100Wniosek
W tym poście omówiono, w jaki sposób użyć klauzuli rzutu na serwerze SQL, aby podnieść wyjątek.
Dziękuje za przeczytanie!