try-catch to podstawowy mechanizm obsługi wyjątków w języku C++. Pozwala oddzielić kod, w którym może wystąpić błąd, od kodu odpowiedzialnego za jego obsługę.
Podstawowy schemat
try {
// kod, który może zgłosić wyjątek
}
catch (typ_wyjatku nazwa) {
// obsługa wyjątku
}
W pytaniach egzaminacyjnych często stosuje się uproszczony zapis:
try { kod } catch { obsługa }
W rzeczywistym kodzie C++ blok catch zwykle zawiera typ przechwytywanego wyjątku, np. int, std::exception albo ....
Przykład
#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
try {
throw runtime_error("Blad programu");
}
catch (const runtime_error& e) {
cout << "Wyjatek: " << e.what();
}
return 0;
}
Najważniejsze elementy
try- obejmuje kod, który może zgłosić wyjątek,throw- zgłasza wyjątek,catch- przechwytuje i obsługuje wyjątek.
Czego nie używa się w C++?
W standardowym C++ nie stosuje się konstrukcji:
handle- nie jest słowem kluczowym obsługi wyjątków w C++,except- kojarzy się raczej z innymi językami, np. Pythonem,finally- występuje w językach takich jak Java czy C#, ale nie w standardowym C++.
Dlatego prawidłowy szkielet obsługi wyjątków w C++ opiera się na parze try oraz catch.