Les déclarations suivantes doivent faire partie de l'espace de noms
basics dans le fichier
exceptions.hpp :
struct Duration
{
int min, sec;
};
int
total_seconds(Duration d);
Il s'agit d'une part de définir, dans le fichier
exceptions.cpp, cette
fonction
total_seconds() afin qu'elle renvoie le nombre total de
secondes de la durée fournie (
60 fois
min plus
sec).
Avant d'effectuer ce calcul, elle devra cependant s'assurer du fait que
le membre
sec n'est pas négatif ni supérieur à
59 ; si
tel est le cas, il faudra lever une exception.
D'autre part, il faut réaliser, dans le fichier
prog_ex0104.cpp, cette
fonction :
void
test_Duration_total_seconds()
{
std::cout << "\n~~~~ " << __func__ << "() ~~~~\n";
try
{
// ...test incorrect duration...
}
catch(const std::exception &e)
{
std::cerr << "!!! Exception: " << e.what() << " !!!\n";
}
// ...test correct duration...
}
qui sera appelée depuis la fonction
main().
Elle doit être complétée en déclarant à chacun des deux emplacements
indiqués une variable de type
Duration initialisée avec deux
valeurs de votre choix, puis il faudra afficher le résultat de la
fonction
total_seconds() appliquée à chacune de ces variables.
Dans le premier cas les valeurs seront choisies de façon à provoquer
une exception, alors que dans le second cas elles ne le devront pas.