En Fortran, j'utilise goto pour rollbacks, et je commence normalement à partir de 999 vers l'arrière (en Fortran, les étiquettes goto sont uniquement numériques)
call foo(err)
if (err /= 0) goto 999
call bar(err)
if (err /= 0) goto 998
call baz(err)
if (err /= 0) goto 997
! everything fine
error = 0
return
997 call undo_bar()
998 call undo_foo()
999 error = 1
return
J'utilise aussi des étiquettes supérieure à 1000 si, pour une raison que je veux pour passer la partie rollback. En C et dans d'autres langues, j'utiliserais rollbacknumber (par exemple, rollback1, rollback2), donc il est clair à partir de l'étiquette que vous allez restaurer. C'est fondamentalement la seule bonne raison d'utiliser goto.
Cela ne dépend-il pas de ce à quoi ils servent? Je préfère nommer * chaque * identifiant après quelque chose de significatif dans le contexte où ils sont utilisés. Bien sûr, nous dire où vous les utilisez peut ouvrir une discussion sur ce que vous pourriez utiliser au lieu de gotos. Mauvais chance. :) – jalf
Je voudrais également faire valoir que si vous avez besoin d'une convention de dénomination, il semble que vous les utilisez trop. ;) – jalf