Udostępnij za pośrednictwem


Ograniczenia dotyczące krańcowych

Nie można użyć goto instrukcji, aby przeskoczyć do __try instrukcji bloku lub __finally instrukcji bloku.Zamiast tego należy wprowadzić instrukcji bloku za pośrednictwem normalnego przepływu sterowania.(Może być jednak jump out of __try instrukcji bloku.) Ponadto nie można zagnieżdżać procedury obsługi wyjątków lub procedury obsługi sytuacji krańcowych wewnątrz __finally bloku.

Dodatkowo niektórych rodzajów kodu dozwolone w procedury obsługi sytuacji krańcowych przedstawienia wątpliwych wyników, więc należy ich używać z rozwagą, jeśli w ogóle.Jedna jest goto instrukcji, która przechodzi z __finally instrukcji bloku.Jeśli blok jest wykonywany jako część normalnej zakończenie, niezwykłych nic się nie dzieje.Ale jeśli system jest niekontrolowanej stosu, który przejmuje odkręcanie zatrzymuje i bieżącą funkcję kontroli, jak gdyby nie Nienormalne zakończenie.

A return instrukcji wewnątrz __finally instrukcji bloku przedstawia grubsza tej samej sytuacji.Kontrola zwraca się do bezpośredniego wywołującego funkcję zawierające procedury obsługi sytuacji krańcowych.Jeśli system został niekontrolowanej stosu, proces ten jest zatrzymywane i program wpływy tak, jakby były nie wyjątku podniesione.

Zobacz też

Informacje

Procedury obsługi sytuacji krańcowych pisania

Strukturalnej obsługi (C++) wyjątków