IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

F# Discussion :

quid de la visibilité des exceptions


Sujet :

F#

  1. #1
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut quid de la visibilité des exceptions
    Salut,



    M'attendant à retrouver quelques fonctionnalités des langages classiques de .Net sous F#, je me demandais comment l'on pouvait signaler rapidement toutes les exceptions émises par une fonction


    parce qu'a priori, en OCaml la "solution" est des plus alambiquées
    http://till-varoquaux.blogspot.com/2...g-nothing.html
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    M'attendant à retrouver quelques fonctionnalités des langages classiques de .Net sous F#
    C'est-à-dire ? Comment ferais-tu cela en C# ?

    Pour faire apparaître les exceptions dans le type de la fonction, il faut bidouiller.

    Exemple de bidouille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    type DivByZero = DivByZero
    type BadArgument = BadArgument of string
     
    let foo x y =
        if y = 0 then Choice3_2 DivByZero
        elif x = 0 then Choice3_3 (BadArgument "x")
        else Choice3_1 (x/y)
     
    val foo : int -> int -> Choice<int,DivByZero,BadArgument>
    On peut aussi jouer avec des phantom types, mais ça reste de la bidouille.

    Tu veux faire quoi exactement ? Indiquer à l'utilisateur quelles peuvent se produire ? Dans ce cas, tu devrais le mettre dans la doc. Ou avoir un système d'erreurs propre ? Dans ce cas, il faudrait essayer avec les monades et regarder les solutions utilisées en Haskell.

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par LLB Voir le message
    Tu veux faire quoi exactement ? Indiquer à l'utilisateur quelles peuvent se produire ? Dans ce cas, tu devrais le mettre dans la doc. Ou avoir un système d'erreurs propre ? Dans ce cas, il faudrait essayer avec les monades et regarder les solutions utilisées en Haskell.

    en fait je voulais pouvoir indiquer dans les interfaces de mon API qu'elles sont les exceptions éventuelles... sans forcemment inclure cela dans le système de type (je sais qu'il n'y a pas en C# le throws de Java )

    bien sur, la liste des exceptions sera indiquée dans la doc, mais j'aimerais que VS puisse aussi indiquer cela facilement
    j'avais cru lire un exemple d'attributs de classe qui permettait justement de préciser une telle info (sans forcemment être complète elle-aussi, mais à la bonne volonté du codeur )
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    j'avais cru lire un exemple d'attributs de classe qui permettait justement de préciser une telle info (sans forcemment être complète elle-aussi, mais à la bonne volonté du codeur )
    Les attributs fonctionnent de la même façon en F# et en C#. Si tu trouves pour le deuxième, ça marchera aussi pour le premier.

Discussions similaires

  1. Codes d'erreurs des exceptions
    Par dway dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/09/2004, 10h37
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 16h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 18h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 18h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo