Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 589

Który z poniższych błędów wykonania aplikacji można obsłużyć za pomocą wyjątków?

  1. ABłąd kompilacji
  2. BNiezgodność typów danych w kodzie
  3. CBłąd składniowy
  4. DBłąd dzielenia przez zeroPoprawna

Wyjaśnienie

Błąd dzielenia przez zero to typowy przykład błędu wykonania, czyli takiego, który pojawia się dopiero w czasie działania programu. W wielu językach można go obsłużyć mechanizmem wyjątków, np. przez try-catch w Javie lub C#, albo try-except w Pythonie. Gdy program próbuje wykonać operację w stylu a / b, a zmienna b ma wartość 0, środowisko uruchomieniowe może zgłosić wyjątek, np. ArithmeticException albo ZeroDivisionError. Dzięki temu aplikacja nie musi od razu się wywalić, tylko może zareagować: pokazać komunikat użytkownikowi, zapisać błąd w logach, użyć wartości domyślnej albo przerwać tylko konkretną operację. Moim zdaniem dobra praktyka jest taka, żeby nie polegać wyłącznie na łapaniu wyjątku, ale wcześniej sprawdzać dane wejściowe, czyli np. if dzielnik != 0. Wyjątki powinny obsługiwać sytuacje niepoprawne lub wyjątkowe, a nie zastępować normalną logikę programu. W branżowym podejściu ważne jest też łapanie możliwie konkretnego wyjątku, a nie ogólnego Exception bez potrzeby, bo potem debugowanie robi się mało przyjemne i łatwo ukryć prawdziwy problem.