Le fait est que quasiment plus personne n'utilise ce code d'erreur dans le main, notamment les débutants
Oui mais le fait est qu'encore moins de personnes prennent le temps de trapper toutes les erreurs, ou de renvoyer une erreur explicitement, dans ce cas le code erreur du main est toujours bon à prendre.
alors autant laisser le compilo mettre la BONNE valeur par défaut, plutôt que de forcer le noobs à renvoyer une valeur,
Le compilateur ne fera pas un programme à ta place. Il forcera une sortie système à 0, ce qui ne veut rien dire d'autre que 'le programme s'est executé correctement' . Maintenant uen fois de plus ce n'est pas parceque le programme ne génère pas d'exceptions qu'il s'est executé correctement, mais là il n'y a que le programmeur qui peut savoir que quelque chose c'est mal passé. Charge à lui soit de créer et de lever une exception pour chaque erreur, soit de passer un paramêtre pour que le programme se termine correctement et renvoit un entier.
Créer des exceptions pour chaque cas est la solution la plus propre, mais trapper toutes les erreurs possibles peut être fastidieux et particulièrement lent.
... pourrait très bien s'amuser à mettre return 1 (c'est vrai pourquoi return 0 ?)
Le 0 est horriblement pratique ca permet de faire le test d'erreur, le renvoit d'erreur et le numéro d'erreur dans une seule instruction.
par exemple
if (!erreur) traiteerreur(erreur);
On utilise le 0 comme un false et hop le tour est joué.
Celui qui sait ce que ca fait met une valeur de retour s'il en a envie, je vois vraiment pas où est le problème.
Manifestement il doit quand même y en avoir un, sinon pourquoi le compilateur s'amuserait-il a transformer la signature de la fonction pour renvoyer un entier quand même. Et quitte à avoir un entier renvoyé quoi qu'il arrive autant
a) ecrire le code de façon à se que ce renvoit d'entier soit visible
b) utiliser ce renvoit d'entier pour transporter une info (autant en profiter) plutôt que de renvoyer 0 à chaque fois.
c) Il n'est pas improbable (surtout vu l'intégration de C# avec COM+) que votre programme C# soit un jour utilisé via un script WSH sous windows. Dans ce cas là, retourner un entier est une très bonne chose.
[^] # Re: On va encore dire que je suis un raleur mais...
Posté par Jerome Herman . En réponse au journal Des nouvelles de Gnome. Évalué à 2.
Oui mais le fait est qu'encore moins de personnes prennent le temps de trapper toutes les erreurs, ou de renvoyer une erreur explicitement, dans ce cas le code erreur du main est toujours bon à prendre.
alors autant laisser le compilo mettre la BONNE valeur par défaut, plutôt que de forcer le noobs à renvoyer une valeur,
Le compilateur ne fera pas un programme à ta place. Il forcera une sortie système à 0, ce qui ne veut rien dire d'autre que 'le programme s'est executé correctement' . Maintenant uen fois de plus ce n'est pas parceque le programme ne génère pas d'exceptions qu'il s'est executé correctement, mais là il n'y a que le programmeur qui peut savoir que quelque chose c'est mal passé. Charge à lui soit de créer et de lever une exception pour chaque erreur, soit de passer un paramêtre pour que le programme se termine correctement et renvoit un entier.
Créer des exceptions pour chaque cas est la solution la plus propre, mais trapper toutes les erreurs possibles peut être fastidieux et particulièrement lent.
... pourrait très bien s'amuser à mettre return 1 (c'est vrai pourquoi return 0 ?)
Le 0 est horriblement pratique ca permet de faire le test d'erreur, le renvoit d'erreur et le numéro d'erreur dans une seule instruction.
par exemple
if (!erreur) traiteerreur(erreur);
On utilise le 0 comme un false et hop le tour est joué.
Celui qui sait ce que ca fait met une valeur de retour s'il en a envie, je vois vraiment pas où est le problème.
Manifestement il doit quand même y en avoir un, sinon pourquoi le compilateur s'amuserait-il a transformer la signature de la fonction pour renvoyer un entier quand même. Et quitte à avoir un entier renvoyé quoi qu'il arrive autant
a) ecrire le code de façon à se que ce renvoit d'entier soit visible
b) utiliser ce renvoit d'entier pour transporter une info (autant en profiter) plutôt que de renvoyer 0 à chaque fois.
c) Il n'est pas improbable (surtout vu l'intégration de C# avec COM+) que votre programme C# soit un jour utilisé via un script WSH sous windows. Dans ce cas là, retourner un entier est une très bonne chose.