#include #include #include int main() { { Bureaucrat franck; std::cout << franck << std::endl; franck.incrementGrade(); std::cout << franck << std::endl; Bureaucrat alain("Alain"); std::cout << alain << std::endl; alain.incrementGrade(); std::cout << alain << std::endl; Bureaucrat james("James", 1); std::cout << james << std::endl; james.decrementGrade(); std::cout << james << std::endl; } std::cout << "================ Exceptions ================" << std::endl; { std::cout << "=== Decrement too low ===" << std::endl; try { Bureaucrat franckAlainJamesLeboeuf; std::cout << franckAlainJamesLeboeuf << std::endl; franckAlainJamesLeboeuf.decrementGrade(); } catch (const std::exception& exception) { std::cout << exception.what() << std::endl; } std::cout << "=== Increment too high ===" << std::endl; try { Bureaucrat franckAlainJamesLeboeuf("Franck Alain James Leboeuf", 1); std::cout << franckAlainJamesLeboeuf << std::endl; franckAlainJamesLeboeuf.incrementGrade(); } catch (const std::exception& exception) { std::cout << exception.what() << std::endl; } std::cout << "=== Construct too low ===" << std::endl; try { Bureaucrat franckAlainJamesLeboeuf("Franck Alain James Leboeuf", 151); } catch (const std::exception& exception) { std::cout << exception.what() << std::endl; } std::cout << "=== Construct too high ===" << std::endl; try { Bureaucrat franckAlainJamesLeboeuf("Franck Alain James Leboeuf", 0); } catch (const std::exception& exception) { std::cout << exception.what() << std::endl; } } }