test2Jeżeli nie zostanie użyta instrukcja On Error, wówczas gdy wystąpi błąd w trakcie wykonania programu, to błąd jest fatalny tzn. zostanie wyświetlony tylko komunikat błędu i wykonanie programu zostanie przerwane.
Obsługa błędu jest włączona, kiedy jest w procedurze umieszczona instrukcja On Error, natomiast jest aktywna wtedy, gdy jest przez nią obsługiwany błąd. Jeżeli wystąpi błąd gdy obsługa błędu jest aktywna (błąd w czasie obsługi błędu) (pomiędzy wystąpieniem błędu i instrukcją Resume, Exit Sub, Exit Function, Exit Property), aktualna obsługa błędu procedury nie może obsłużyć błędu. Sterowanie powraca do procedury wywołującej. Jeżeli wywołująca procedura posiada włączoną obsługę błędu, to jest ona aktywowana do obsłużenia błędu. Jeżeli w wywołującej procedurze obsługa błędu jest także aktywna, sterowanie powraca do poprzednio wywołującej procedury aż do znalezienia włączonej, ale nieaktywnej obsługi błędu. Jeżeli nie zostanie znaleziona włączona ale nieaktywna obsługa błędu, wówczas błąd jest fatalny, praktycznie w momencie w którym wystąpi. Za każdym razem gdy obsługa błędu zwraca sterowanie to procedury która ją wywołała, to staje się ona bieżącą procedurą. Gdy błąd jest obsługiwany przez obsługę błędu w jakiejkolwiek procedurze, wykonanie programu jest kontynuowane w bieżącej procedurze w punkcie wyznaczonym przez instrukcję Resume. |