Explication d'une "bonne" règle de programmation (points de sortie)

Explication d'une "bonne" règle de programmation (points de sortie) - Divers - Programmation

Marsh Posté le 02-03-2006 à 10:56:01    

Bonjour,
 
Je suis en train de m'envoyer un bouquin ("Practical Standards for Microsoft Visual Basic" ). Il parle à un moment de ne faire qu'un seul point de sortie, comme ça :
 

Code :
  1. Public Function IsFormLoaded(strFormName As String) As Boolean
  2.    On Error GoTo PROC_ERR
  3.    Dim intCounter As Integer
  4.    For intCounter = 0 To Forms.Count - 1
  5.       If Forms(intCounter).Name = strFormName Then
  6.          IsFormLoaded = True
  7.          GoTo PROC_EXIT
  8.       End If
  9.    Next intCounter
  10.  
  11.    IsFormLoaded = False
  12. PROC_EXIT:
  13.    Exit Function
  14. PROC_ERR:
  15.    MsgBox "basMain | IsFormLoaded" & vbCrLf & "Error: " & _
  16.           Err.Number & vbCrLf & Err.Description
  17.    Resume Next
  18. End Function


 
Je me dis que s'il le met ça doit être utile, mais en essayant de réfléchir à pourquoi je vois pas.
Peut-être placer un point d'arrêt à la sortie de la sub ?

Reply

Marsh Posté le 02-03-2006 à 10:56:01   

Reply

Marsh Posté le 02-03-2006 à 10:58:52    

[:totoz] un livre sur les bonnes pratiques de programmation qui pond du goto de partout [:totoz]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 02-03-2006 à 11:01:02    

c'est du vb aussi :o
 
il y a qques rares cas où c'est accepté en C aussi il me semble

Reply

Marsh Posté le 03-03-2006 à 05:52:04    

ouai goto est aussi utilisé en C et en C++
 
Pour Xav, l'intéret d'avoir un seul point de sortie
c'est que si tu as du clean up à faire en sortie de fonction
tu n'as qu'un seul code à écrire plutot que de le dupliquer
et en plus de risquer d'oublier un cas.
 
En java par exemple.

Code :
  1. try
  2. {
  3.     // corps de la fonction
  4. }
  5. finally
  6. {
  7.    // ce code est toujours executé
  8. }


 
Mais en java ils n'aiment pas les goto, allez comprendre ;).
 
LeGreg

Reply

Marsh Posté le 03-03-2006 à 09:24:21    

Un peu plus loin ils mettent un exemple justement ou c'est utile (fermeture d'un fichier par exemple)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed