Comme l'indique leur nom les exception sont "exceptionnelles" et ne doivent en aucun cas être utilisé comme une possibilité de transmission de message comme une autre.
Même si elles peuvent apparaîtrent n'importe où, elles ne permettent pas de se brancher n'importe où dans le code contrairement au goto, qui de plus peu être utilisé à tout va puisque son utilisation n'est pas limité par sa sémantique.
L'exemple de la programmation objet comme tu dis est un parfait exemple de style de programmation où le goto devient complètement inutile et déconseillé : les méthodes sont réduites à leur plus simple expression, ne font qu'un dizaine de ligne maximum, alors l'intérêt d'un goto là dedans... Et si tu uitlises un goto pour sortir d'une méthode tu te retrouves avec du code spaghetti indéboggable et tu te fais virer par ton chef de projet qui fait de la programmation par aspect ete qui ne captes pas pourquoi son code à lui n'est jamais exécuté...
Les goto pour la gestion des erreurs sont bien plus puissants, lisibles et compréensibles qu'un break/continue/return posé au milieu de 3 boucles imbriquées ;
Ah bon tu remplacent le mot break/continue/return par un goto et tu comprends mieux ? Je captes pas... ok y'a moins de lettres... break/continue/return sont des cas particulier de goto, ont une sémantique et une utilisation précise qui fait que tout le monde les comprend, notamment le compilateur (et c'est pas négligeable).
[^] # Re: Hmm :/
Posté par TImaniac (site web personnel) . En réponse au journal Entretient du noyau Linux. Évalué à 6.
Même si elles peuvent apparaîtrent n'importe où, elles ne permettent pas de se brancher n'importe où dans le code contrairement au goto, qui de plus peu être utilisé à tout va puisque son utilisation n'est pas limité par sa sémantique.
L'exemple de la programmation objet comme tu dis est un parfait exemple de style de programmation où le goto devient complètement inutile et déconseillé : les méthodes sont réduites à leur plus simple expression, ne font qu'un dizaine de ligne maximum, alors l'intérêt d'un goto là dedans... Et si tu uitlises un goto pour sortir d'une méthode tu te retrouves avec du code spaghetti indéboggable et tu te fais virer par ton chef de projet qui fait de la programmation par aspect ete qui ne captes pas pourquoi son code à lui n'est jamais exécuté...
Les goto pour la gestion des erreurs sont bien plus puissants, lisibles et compréensibles qu'un break/continue/return posé au milieu de 3 boucles imbriquées ;
Ah bon tu remplacent le mot break/continue/return par un goto et tu comprends mieux ? Je captes pas... ok y'a moins de lettres... break/continue/return sont des cas particulier de goto, ont une sémantique et une utilisation précise qui fait que tout le monde les comprend, notamment le compilateur (et c'est pas négligeable).