Question

Je souhaite définir une chaîne d'erreur avant de quitter une fonction, en fonction du code de retour et de la variable dans la fonction.

J'ai actuellement:

Dim RetVal as RetType

try
...
if ... then
    RetVal = RetType.FailedParse
    end try
endif
...

finally
    select case RetVal
        case ...
            UserStr = ...
    end select
end try

return RetVal

Est-il possible d'utiliser return RetType.FailedParse, puis d'y accéder dans le bloc finally?

Était-ce utile?

La solution

La seule façon de faire cela en C # serait de déclarer une variable au début de la méthode pour contenir la valeur - c'est-à-dire.

SomeType result = default(SomeType); // for "definite assignment"
try {
   // ...
   return result;
}
finally {
    // inspect "result"
}

En VB, vous pourriez pouvoir accéder directement au résultat - car IIRC fonctionne un peu comme ci-dessus (avec le nom de la méthode comme "résultat"). Mise en garde: Je ne suis vraiment pas une personne de VB ...

Autres conseils

Déclarez la variable du bloc try et cochez le bloc finally si elle a été définie.

Je me demandais si en VB on pouvait (légalement) faire:

Public Function MyFunc() as integer
    Try
      if DoSomething() = FAIL Then
        return FAIL
      end if

  Finally
      if MyFunc = FAIL then
          Me.ErrorMsg = "failed"
      endif
  End Try
End Function

Je sais que la définition de MyFunc = FAIL est légale (en tant que blocage de VB), est-elle accessible en écriture ou lisible? Je crains qu’il s’agisse d’un mauvais codage

if MyFunc = FAIL Then

est trop similaire à

if MyFunc() = FAIL Then

qui a des conséquences très différentes!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top