Beispiel #1
0
void				Bureaucrat::signForm( Form & form ) const {
	try {
		bool	wasSigned = form.getWasSigned();

		form.beSigned(*this);
		std::cout << "Bureaucrat " << name << " (Grade " << grade << ") signs a " << form.getName()
		<< " (s.grade " << form.getRequirementSign() << ", ex.grade " << form.getRequirementExec()
		<< ")";
		if (wasSigned)
			std::cout << " (Signed)." << std::endl;
		else
			std::cout << " (Unsigned)." << std::endl;
		
	} catch (Form::GradeTooLowException) {
		std::cout << "Bureaucrat " << name << " cannot sign " << form.getName() << " because his grade is too low (His grade is "
			<< grade << " but should be at least " << form.getRequirementSign() << ")." << std::endl;
	} catch (std::exception) {
		std::cout << "Bureaucrat " << name << " cannot sign " << form.getName() << " because of an unknown reason." << std::endl;
	}
}