BD-1st-2.4-lab12.tresc-1.1-Slajd30

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Propagacja wyjątków (3)

Propagacja wyjątków (3)


Rozważmy ostatnią sytuację. Teraz zmienna x ma wartość różną od 1 i 2, dlatego zostaje wygenerowany wyjątek wyj_3. Sterowanie przechodzi do sekcji obsługi wyjątków bloku, w którym wystąpił wyjątek, czyli bloku wewnętrznego, tam jednak nie ma podsekcji obsługi wyjątku wyj_3. Sterowanie jest przekazywane do sekcji obsługi wyjątków bloku zewnętrznego, ale i tam nie ma pasującej podsekcji obsługi wyjątku wyj_3. Program zostaje przerwany z komunikatem o wystąpieniu nieobsługiwanego wyjątku.


Zaprezentowane przykłady powinny wyjaśnić ogólną zasadę propagacji wyjątków. Jeśli w bloku wystąpił wyjątek, sterowanie jest przekazywane do sekcji obsługi wyjątków tego bloku, tam poszukiwana jest podsekcja odpowiedzialna za obsługę danego wyjątku. Jeśli podsekcja zostanie znaleziona, wykonywana jest sekwencja poleceń w niej umieszczona. Następnie sterowanie przechodzi do pierwszej instrukcji po bloku, w którym obsłużono wyjątek. W przypadku nie znalezienia pasującej podsekcji obsługi wyjątków, poszukiwanie pasującej podsekcji jest kontynuowane w sekcji obsługi wyjątków bloku nadrzędnego, itd. Jeśli blok nie ma bloku nadrzędnego lub przeszukano sekcje obsługi wyjątków wszystkich bloków i nie znaleziono żadnej pasującej podsekcji, program zostaje przerywany z komunikatem o błędzie.


<< Poprzedni slajd | Spis treści | Następny slajd >>