W dzisiejszej notce chciałbym napisać o świadomym i celowym wywołaniu błędu w kodzie makra, czyli instrukcji Err.Raise.
Korzyści Błędu
Na pierwszy rzut oka temat może się wydawać nieco absurdalny. Błędy i bugi są rzeczami, których chcemy uniknąć pisząc makro. Po co więc tworzyć sztuczny błąd?
W praktyce okazuje się, że celowe wywołanie błędu może nam dostarczyć ważnych informacji. I to w szybki i prosty sposób.
Czy Arkusz Istnieje?
Przykładem może być sprawdzenie czy konkretnie nazwany arkusz znajduje się w skoroszycie. Niektórzy w tym celu napiszą kod, który sprawdzi w pętli każdy arkusz i porówna nazwę arkusza z nazwą szukaną.
Zaawansowani programiści napiszą kod, w którym spróbują przypisać szukanemu arkuszowi zmienną obiektową, poprzedzając tą operację instrukcją ignorującą błędy. Jeżeli arkusz faktycznie istnieje w skoroszycie – błąd nie wystąpi, jeżeli arkusza nie ma w pliku – błąd wystąpi.
Metoda Raise
Obiekt Err poza popularnymi właściwościami: Number i Description posiada także bardzo interesującą metodę Raise. Jej składnia jest następująca: Err.Raise (Liczba, Źródło, Opis, PlikPomocy, IndeksPomocy).
Argumenty Err.Raise są więc takie same jak właściwości obiektu Err. Wszystkie z wyjątkiem pierwszego są opcjonalne.
Pewnym ograniczeniem jest fakt, że dla własnego błędu nie możemy zgłosić numeru, który jest już wykorzystany przez wbudowany błąd. VBA dostarcza własną stałą vbObjectError, która na szczęście pomaga w tworzeniu własnych numerów błędów.
Film Na Vlogu
Polecam sprawdzić jak w praktyce wygląda celowe zgłoszenie błędu.