J'essaye d'écrire une fonction où seulement deux appels de méthode (avec les méthodes étant unit -> unit) devraient avoir une certaine exception gérée. Le comportement doit être:
- si une exception est levée toute la fonction se termine
- la fonction continue (en dehors du gestionnaire d'exceptions), sinon
Au début, je pensais que je pouvais utiliser une fonction avec les états enveloppées dans un essai/avec un bloc et une continuation, mais bien sûr la continuation serait appelée depuis le bloc ... Je pourrais probablement envelopper les instructions dans une fonction et utiliser une valeur de retour pour signaler le succès/l'échec, mais cela semble maladroit à moi comparé au code C# suivant, qui fait ce que j'essaye de réaliser en F #.
F # Gestion des exceptions pour une partie de la fonction
SomeType MyMethod(string x)
{
...
try
{
foo();
bar();
}
catch(SomeException)
{
return null;
}
...
return ...;
}
Je pense que ceci est aussi proche que je peux obtenir à ce que je voudrais faire, bien que je pense que dans cette situation manquant le plus grand contrôle sur le flux de contrôle de la programmation impérative est un handicap. – em70