Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Funkcja ERROR_NUMBER()

Termin Definicja
Funkcja ERROR_NUMBER()

Funkcja ERROR_NUMBER() zwraca numeryczny kod ostatnio wystąpionego błędu.

Kod błędu jako liczba, nie jako opis

ERROR_NUMBER to funkcja systemu Microsoft SQL Server zwracająca numer błędu, który właśnie został przechwycony. Ma sens wyłącznie wewnątrz bloku obsługi wyjątku; wywołana poza nim zwróci wartość pustą. Numer jest identyfikatorem konkretnej sytuacji, dzięki czemu kod może reagować różnie w zależności od tego, co poszło nie tak, zamiast traktować każdy błąd jednakowo. To rozróżnienie jest ważne, bo tekst komunikatu bywa tłumaczony na język instalacji, a numer pozostaje ten sam niezależnie od wersji językowej.

Rodzina funkcji opisujących przechwycony błąd

Funkcja nie występuje sama. Obok niej dostępne są odpowiedniki zwracające tekst komunikatu, stopień powagi błędu, jego stan, numer wiersza oraz nazwę procedury, w której błąd powstał. Typowe użycie polega na tym, że w bloku obsługi wyjątku zapisuje się komplet tych wartości do tabeli dziennika zdarzeń, a następnie podejmuje decyzję: wycofać transakcję, ponowić operację albo przekazać błąd wyżej. Warto rozróżnić dwa podejścia: można po prostu odnotować zdarzenie i pójść dalej albo na podstawie numeru rozgałęzić logikę, na przykład inaczej potraktować naruszenie klucza unikalnego, a inaczej przekroczenie czasu oczekiwania na blokadę.

Puste wartości, zagnieżdżone bloki i błędy nie do przechwycenia

Najczęstszą pomyłką jest sięgnięcie po numer błędu poza blokiem obsługi wyjątku i zdziwienie, że wynik jest pusty. Druga to zagnieżdżanie bloków: wewnętrzna obsługa przechwytuje błąd i po jej zakończeniu funkcja przestaje raportować to samo zdarzenie na poziomie zewnętrznym, o ile błąd nie został przekazany dalej. Trzecią pułapką jest założenie, że każdy problem da się przechwycić. Część błędów, zwłaszcza tych o najwyższym stopniu powagi albo powstających na etapie kompilacji zapytania, przerywa wykonanie w sposób, którego obsługa wyjątku w tej samej partii nie zdąży zauważyć. Osobną kwestią są transakcje: po niektórych błędach transakcja pozostaje w stanie, w którym można ją już tylko wycofać, więc próba dopisania czegokolwiek do dziennika w tej samej transakcji skończy się utratą wpisu.

Baza danych na komputerze, który nie wyrabia

Problemy z bazą często nie są problemami z kodem. Zapytania zaczynają się wysypywać przez przekroczenia czasu, gdy dysk sypie się od dawna, pamięci jest za mało albo maszyna przegrzewa się i zwalnia taktowanie. Warszawskie Pogotowie Komputerowe zajmuje się tą warstwą sprzętową: diagnozujemy stacje robocze i serwery firmowe, wymieniamy nośniki, na których trzyma się pliki bazy, i zabezpieczamy dane przed migracją. Diagnoza laptopa jest u nas bezpłatna, więc sprawdzenie, czy winny jest sprzęt, nic nie kosztuje.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę