Obsługa wyjątków w C++

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Obsługa wyjątków w C++ służy do reagowania na sytuacje błędne lub nietypowe, które mogą wystąpić podczas działania programu, np. dzielenie przez zero, błąd odczytu pliku albo niepoprawne dane.

Najważniejsze słowa kluczowe związane z wyjątkami w C++ to:

  • try - oznacza blok kodu, w którym może wystąpić wyjątek,
  • catch - przechwytuje i obsługuje wyjątek,
  • throw - zgłasza wyjątek.

W pytaniach egzaminacyjnych często pojawia się para try i catch, ponieważ razem tworzą podstawowy mechanizm obsługi wyjątków.

Schemat działania

Kod, który może spowodować błąd, umieszcza się w bloku try. Jeśli w tym bloku zostanie zgłoszony wyjątek, program przechodzi do pasującego bloku catch.

Przykład

#include <iostream>
#include <stdexcept>

int main() {
    try {
        int dzielnik = 0;

        if (dzielnik == 0) {
            throw std::runtime_error("Dzielenie przez zero");
        }

        std::cout << 10 / dzielnik;
    }
    catch (const std::exception& e) {
        std::cout << "Wystapil blad: " << e.what();
    }

    return 0;
}

Ważne na egzaminie

W standardowym C++ nie używa się słów kluczowych except, finally, raise ani handle do obsługi wyjątków. Są one kojarzone z innymi językami lub nie są poprawnymi słowami kluczowymi C++ w tym kontekście.

Poprawna para do obsługi wyjątków w C++ to najczęściej: try i catch.