assert/exit(0)

assert/exit(0)

by Lucile Maud Cerda -
Number of replies: 3

Bonjour, 

est-ce qu'il y a un avantage à utiliser assert plutôt que exit(0) pour quitter le programme?

In reply to Lucile Maud Cerda

Re: assert/exit(0)

by Lars Henning Klein -
In principle they are very similar. But assert allows you to write more readable code
( I hope this code works, might have syntax errors):

// version 1
if (! must_be_true){
   cout<<"error message";
   exit(0);
}

// version 2
assert(must_be_true && "error message");
In reply to Lars Henning Klein

Re: assert/exit(0)

by Ronan Boulic -

What Lars wrote is fine regarding the use of assert

BUT for rendu1 you have to use //version1 with exit(0);  otherwise we cannot automate the grading of your project.

In reply to Lucile Maud Cerda

Re: assert/exit(0) => exit() pour le code rendu1

by Ronan Boulic -

[assert est présenté dans la série4 et son corrigé]

Pour le rendu1 il faut que le code compilé utilise exit() sinon votre exécutable va imprimer un message supplémentaire qui va faire échouer l'autograder.

Pour votre mise au point l'utilisation d'assert vous imprime un message plus détaillé qui vous aide plus qu'un simple exit().

Peut-on avoir les deux ? Oui mais POUR LE CODE DU RENDU1 ne pas oublier de désactiver assert en définissant le symbole NDBUG comme ceci au début de chaque module source utilisant assert:

#define NDBUG