Poniżej pokazano składnię do tworzenia wyjątku klasowego BAD_WEAK_PTR.
klasa BAD_WEAK_PTR: PUBLIC STD :: wyjątekTa klasa określa wyjątek, który możemy rzucić za pomocą konstruktora wspólnego wskaźników, który trzyma argument typu słabego wskaźnika. W składni powyższym wyjątkiem jest błąd, który będziemy rzucić, gdy pojawia się zły słaby wskaźnik. Wewnątrz funkcji klasowej zadeklarowaliśmy dwie funkcje stałego postaci danych, które są metodą „co ()” i „rzut ()”. Funkcja „What ()” służy do zwrócenia zakończonego znaku, która identyfikuje używany wyjątek, a „rzut ()” służy do rzucenia wyjątku, gdy kompilator wykrywa problem. Wartość zwracana dla złego słabego wskaźnika jest ciągiem zerowym z wyjaśnieniem.
Przykład nr 01:
Wykonajmy teraz przykład BAD_WEAK_PTR, aby sprawdzić, jak to działa. Pierwszym krokiem do wykonania w tym jest włączenie plików nagłówka „iostrem” i „pamięci”. „Iostream” zapewnia możliwość wykonywania operacji wejściowych; podczas gdy „pamięć” pozwala nam wykonywać różne operacje związane z alokacją pamięci itp.
Teraz, w głównej funkcji, zadeklarowaliśmy wspólny wskaźnik typu liczb całkowitych o nazwie „PTR”. Do tego wskaźnika przekazaliśmy wartość całkowitą „42” i używając nowego słowa kluczowego, przydzieliliśmy ją do sterty pamięci. A następnie, używając słabego wskaźnika, zadeklarowaliśmy BAD_WEAK_PTR o nazwie „Bad_weak_pointer”, do którego odwoływaliśmy się do współdzielonego wskaźnika „PTR”. Teraz, używając słowa kluczowego RESET (), zresetujemy bity w dostarczonym indeksie „ptr” do null lub „0”. Następnie wywołamy instrukcję TRY , która służy do wykonania czegoś zdefiniowanego przez użytkownika. Wewnątrz zadeklarowaliśmy kolejny wspólny wskaźnik o nazwie „P2”, który będzie utrzymywał zły słaby wskaźnik „BAD_WEAK_POINTER”. Teraz nazywamy instrukcję catch (), która pozwoli nam zdefiniować blok wykonania, gdy wystąpi błąd. Do instrukcji Catch () przekazaliśmy BAD_WEAK_PTR i „ERR” jako parametr. „ERR” służy do przechowywania błędu, który wystąpi w tym programie. Wewnątrz zmiennej „Err” Curly Braces wyświetli rodzaj błędu, który występuje w tym kodzie za pomocą metody What (), która jest używana do uzyskania instrukcji identyfikującej błąd.
#włączaćTeraz sprawdźmy nasze dane wyjściowe, w którym wyświetlono błąd, który wystąpił z powodu złego słabego wskaźnika.
Przykład nr 02:
W tym przykładzie spróbujemy wykonać inny program BAD_WEAK_PTR, w którym utworzymy obiekt współdzielonego typu wskaźnika i wywołamy konstruktor i destruktor. Zapewnijmy szczegółowy widok kodu, który zamierzamy wykonać. Po uwzględnieniu tych samych plików nagłówka, które zawarliśmy w powyższym przykładzie. Utworzymy obiekt „BD_PTR” za pomocą struktury. I wywołane enabled_shared_from_this dla obiektu BD_PTR, który umożliwia obiekt BD_PTR, który jest zarządzany przez udostępniony wskaźnik o nazwie „BD_PTR”.
Wewnątrz tego obiektu nazwiemy konstruktor „BD_PTR” i destruktora. Ponadto, w obu tych funkcjach, przekazujemy instrukcję, która zostanie wyświetlona podczas udanego wykonania. A także stworzył funkcję tego obiektu „BD-PTR” o nazwie „getBdptr”, który zwróci shared_ptr, który będzie udostępniać własność „this”. Metoda „shared_from_this ()” służy do umożliwienia obiektu zarządzanego wskaźnik współużytkowany, umożliwia utworzenie instancji dla obiektu współdzielonego wskaźnika. Teraz, przejście do naszej głównej funkcji, w której nazwaliśmy instrukcję TRY , w której zadeklarowaliśmy zmienną o nazwie „F” obiektu „BD_PTR”, do której przypisaliśmy stertę pamięci za pomocą „nowego” słowa kluczowego.
Stworzyliśmy również jeszcze jeden współdzielony wskaźnik typu „BD_PTR” o nazwie „SP”, do którego przypisaliśmy metodę getBdptr (), wskazując za pośrednictwem zmiennej „f” obiektu typu. Korzystając z operatora „->”, uzyskaliśmy dostęp do elementu struktury dla zmiennej „F”. Do metody połowowej przekazaliśmy stały typ BAD_WEAK_PTR o nazwie „Badweakptr”, co oznacza, że jeśli wystąpi wyjątek Bad_weak_ptr, wyświetli wewnętrzny kod, który napisaliśmy w klamrach, w których wyświetli nazwę wyjątku, który ma miejsce a na koniec wychodzimy z kodu z -1.
#włączaćW poniższym fragmencie z powodzeniem wykonaliśmy przesłanie stworzenia konstruktora, co oznacza, że nasz konstruktor został pomyślnie tworzony. Ale destruktor nie wykonuje się, ponieważ rzuciliśmy wyjątek dla złego słabego wskaźnika. Wyświetlał więc wewnętrzny kod, który napisaliśmy w funkcji połowowej, która wyświetlała rodzaj wystąpienia błędu.
Wniosek
W tym przewodniku zbadaliśmy wyjątek, który jest BAD_WEAK_PTR, który służy do wyrzucenia wyjątku i zwraca typ wiadomości, który występuje w momencie wykonania. Przeprowadziliśmy różne przykłady, aby wyjaśnić koncepcję tego wyjątku i sposób, w jaki jest ono używane w kodzie. Staraliśmy się jak najlepiej wyjaśnić działanie BAD_WEAK_PTR.