Przejdź do treści głównej
INF.04Pytanie #660 z 856obsluga-wyjatkow-i-bledow

Jaki będzie dokładny wynik działania powyższego programu w C++?

Opcje odpowiedzi:
A
Kod spowoduje błąd kompilacji.
B
Checking value 10... Value is valid. Checking value -5... This line will not be executed. Program finished.
C
Checking value 10... Value is valid. Checking value -5... Error caught: Value cannot be negative. Program finished.
Prawidłowa
D
Checking value 10... Value is valid. Checking value -5... Program zakończy działanie z powodu nieobsłużonego wyjątku.
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C

C. Działanie programu przebiega następująco:

  1. Program wchodzi do bloku try.
  2. Wyświetla Checking value 10....
  3. Wywołuje checkValue(10). Warunek value < 0 jest fałszywy, więc funkcja wyświetla Value is valid. i kończy działanie.
  4. Program kontynuuje w bloku try i wyświetla Checking value -5....
  5. Wywołuje checkValue(-5). Warunek value < 0 jest prawdziwy, więc funkcja rzuca (throw) wyjątek std::runtime_error.
  6. W momencie rzucenia wyjątku, normalne wykonywanie kodu w bloku try jest natychmiast przerywane. Sterowanie przechodzi do odpowiedniego bloku catch.
  7. Blok catch przechwytuje wyjątek i wykonuje swój kod, wyświetlając Error caught: Value cannot be negative..
  8. Po zakończeniu bloku catch, program kontynuuje normalne działanie od instrukcji następującej po całym bloku try-catch, wyświetlając Program finished..

Dlaczego inne odpowiedzi są nieprawidłowe:

  • A. – Kod jest w pełni poprawny składniowo.

  • B. – Błędne, ponieważ ignoruje fakt, że rzucenie wyjątku przerywa działanie bloku try i przechodzi do catch.

  • D. – Błędne, ponieważ wyjątek jest właśnie po to, aby go obsłużyć w bloku catch i zapobiec awaryjnemu zakończeniu programu.

Chcesz poćwiczyć całą kwalifikację INF.04?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Obsluga wyjatkow i bledow”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 9 pytań z tego działu.