
//
// Przykładowy kod z rozdziału 5.6.3 "Nieprawidłowe dane wejściowe" książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

//------------------------------------------------------------------------------

double some_function()
{
    double d = 0;
    cin >> d;
    if (!cin) error("Nie można wczytać liczby typu double w funkcji 'some_function()'.");
    // Jakieś przydatne instrukcje.
}

//------------------------------------------------------------------------------

int main()
try {
    // Nasz program.
    some_function();
    return 0;    // 0 oznacza powodzenie.
}
catch (exception& e) {
    cerr << "Błąd: " << e.what() << '\n';
    keep_window_open();
    return 1;    // 1 oznacza niepowodzenie.
}
catch (...) {
    cerr << "Nieznany wyjątek!\n";
    keep_window_open();
    return 2;    // 2 oznacza niepowodzenie.
}

//------------------------------------------------------------------------------
