Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Débuter
Débuter Forum d'entraide pour débuter en langage de programmation C++. Avant de poster : cours d'initiation au C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/12/2012, 00h07   #1
FoX_*D i E*
Membre du Club
 
Inscription : septembre 2007
Messages : 160
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : septembre 2007
Messages : 160
Points : 54
Points : 54
Par défaut throw dans l'en-tête d'une fonction

Bonjour,

j'étudie ce tuto : http://cpp.developpez.com/cours/polyCpp/#LVI-C

Je ne vois pas la difference entre :

Code :
type mafonction(args) throw(){/*      */}
et
Code :
type mafonction(args){/*sans aucun try catch*/}
si on ne met pas de try catch, aucune exeption ne va etre capté et le programme plantera, tout comme si on mettrait throw() en en tete

Je vous remercie d'avance et .... bonnes fêtes ^^
FoX_*D i E* est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 02h55   #2
Ehonn
Membre éprouvé
 
Étudiant
Inscription : février 2012
Messages : 209
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2012
Messages : 209
Points : 441
Points : 441
http://cpp.developpez.com/faq/cpp/?p...fonction_throw

Je pense que c'est pour aider le compilateur à optimiser
car naïvement je trouve "qu'empêcher de faire remonter les exceptions sans les traiter" avec ce comportement est une mauvaise pratique.
Ehonn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 15h28   #3
Flob90
Modérateur
 
Avatar de Flob90
 
Homme Florian Blanchet
Etudiant en Optique
Inscription : août 2004
Messages : 1 061
Détails du profil
Informations personnelles :
Nom : Homme Florian Blanchet
Âge : 22
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Etudiant en Optique

Informations forums :
Inscription : août 2004
Messages : 1 061
Points : 2 494
Points : 2 494
Bonjour,

Oublies les spécificateurs d'exception (dynamique, ie ceux avec throw()), ils sont dépréciés.

On a maintenant plus qu'un spécificateur et il n'est pas dynamique (ie il est résolu à la compilation) : http://www.stroustrup.com/C++11FAQ.html#noexcept

Je te laisse lire le lien. Ce spécificateur permet d'interdire une fonction de lancer une exception (si elle le fait le programme se termine : std::terminate). C'est assez intéressant pour les développeur, ça améliore considérablement l'écriture de code résistant aux exceptions (ie, si il y a une exception, l'état des objets restent cohérent et idéalement identique à l'état avant l'appel).
__________________
"We can solve any problem by introducing an extra level of indirection" Butler Lampson

"N'importe quel problème peut être résolu en introduisant un niveau d'indirection supplémentaire" Butler Lampson (traduction libre)
Flob90 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 17h19   #4
koala01
Modérateur
 
Avatar de koala01
 
Philippe Dunski
Inscription : octobre 2004
Messages : 8 626
Détails du profil
Informations personnelles :
Nom : Philippe Dunski
Âge : 41

Informations forums :
Inscription : octobre 2004
Messages : 8 626
Points : 13 346
Points : 13 346
Envoyer un message via MSN à koala01 Envoyer un message via Skype™ à koala01
Salut,
Citation:
Envoyé par Flob90 Voir le message
Bonjour,

Oublies les spécificateurs d'exception (dynamique, ie ceux avec throw()), ils sont dépréciés.

On a maintenant plus qu'un spécificateur et il n'est pas dynamique (ie il est résolu à la compilation) : http://www.stroustrup.com/C++11FAQ.html#noexcept

Je te laisse lire le lien. Ce spécificateur permet d'interdire une fonction de lancer une exception (si elle le fait le programme se termine : std::terminate). C'est assez intéressant pour les développeur, ça améliore considérablement l'écriture de code résistant aux exceptions (ie, si il y a une exception, l'état des objets restent cohérent et idéalement identique à l'état avant l'appel).
A noter, toutefois, que VC++ ne supporte malheureusement pas encore cette possibilité, y compris dans sa version 2012
__________________
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
je ne répondrai à aucune question technique par E-mail, message visiteur ou message privé
Vous avez obtenu votre réponse pensez au bouton en bas de page
koala01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 18h02   #5
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 370
Détails du profil
Informations personnelles :
Nom : Homme Germino Legrand
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2010
Messages : 370
Points : 1 873
Points : 1 873
Citation:
Envoyé par koala01 Voir le message
Salut,A noter, toutefois, que VC++ ne supporte malheureusement pas encore cette possibilité, y compris dans sa version 2012
Je voudrais pas troller, mais VC++ ne supporte de toute façon pas grand chose du C++11...
__________________
Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h23.


 
 
 
 
Partenaires

Hébergement Web