bonjour,
j'ai un programme console
quand le programme est lancé, comment je pourrai l'arrêter
de n'importe quel endroit du code?
merci pour votre aide
Version imprimable
bonjour,
j'ai un programme console
quand le programme est lancé, comment je pourrai l'arrêter
de n'importe quel endroit du code?
merci pour votre aide
heu... tu veux dire un arrêt total et brutal ?
Pour plus d'infos sur les exceptions, cherche dans google ou dans les tutos du site ;)Code:
1
2
3
4
5 #include <stdexcept> [...] throw std::runtime_error(); //Ceci ne sera normalement jamais execute... [...]
http://www.cplusplus.com/ref/cstdlib/exit.htmlCode:
1
2 exit (valeur de retour);
Comme tu l'indiques dans ton lien, c'est du C pas du C++ (cstdlib)Citation:
Envoyé par harsh
Le problème avec exit c'est qu'il va oublier d'appeler le destructeur de certaines variables (les statiques ou les globales -- je ne me rappelle jamais).
Le problème avec l'exception c'est que si elle est attrapée quelque part, ça ne va rien quitter du tout.
Pour la manière correcte de quitter brutalement le programme, il faudrait déjà savoir pour quelle raison. Erreur fatale ? Arrêt normal ? Autre ... ?
il ne s'agit pas d'erreur
mais simplement de ne pas continuer
si une condition se produit,
le programme s'arrête où qu'elle se trouve dans le code
Il suffit de redonner la main à la fonction d'entrée.Citation:
Envoyé par ilimo
Où est le problème ?
Citation:
Envoyé par Mayti4
Il veut que tout le programme s'arrette... pas uniquement la fonction...
peut-être le "mieux" serait une exception qui serait catchée dans le main, ça permettrait d'avoir une sortie propre, et d'effacer proprement toutes les variables qui doivent l'être ;)
Si ton programme est bien fait tu ne devrais pas avoir besoin d'une instruction magique qui stoppe tout, tu dois simplement stopper l'exécution par sa voie "normale".
Donc c'est probablement plus un problème de conception que de coding, que tu as.
Revenir à la fonction 'main' va forcément quitter le programme, proprement.Citation:
Il veut que tout le programme s'arrette... pas uniquement la fonction...