
//
// Przykładowy kod z rozdziału 5.10 "Warunki wstępne i końcowe" książki
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

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

int my_complicated_function(int a, int b, int c)
// Argumenty muszą być dodatnie oraz a < b < c.
{
    if (!(0<a && a<b && b<c))    // ! oznacza „nie”, a && oznacza „i”.
        error("Nieprawidłowe argumenty funkcji mcf.");
    // ...
}

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

int main()
try
{
    //int x = my_complicated_function(1, 2, "horsefeathers");
    int y = my_complicated_function(1, 2, 3);
    int z = my_complicated_function(3, 2, 1);
}
catch (exception& e) {
    cerr << "Błąd: " << e.what() << '\n'; 
    return 1;
}
catch (...) {
    cerr << "Nieznany wyjątek!\n"; 
    return 2;
}

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