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

Caml Discussion :

[ocaml][debutant] exception et lecture des valeurs au clavier


Sujet :

Caml

  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut [ocaml][debutant] exception et lecture des valeurs au clavier
    Bonjour,

    je n'arrive pas à comprendre comment une chose simple : comment lire une valeur de type int saisie au clavier et gérer les possible erreurs .
    Un chose simple donc je demande à l'utilisateur de saisir une valeur.
    Je lis cette valeur par un read_int ou read_line avec une conversion de type ensuite.Mais je n'arrive pas à gérer l'exception lorsque l'utilisateur tape n'importe quoi .

    J'ai essayé (pour lire un nombre entier positif )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     let lecture_int = try 
                let b = read_int() in if b > 0 the (b,true) else (0,false) 
               with Failure -> (0,false);;
    qui ne marche pas et également :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let lecture_int = try 
                let b = read_int() in if b > 0 the (b,true) else (0,false) 
               with Failure("int_of_string") -> (0,false);;
    Donc il y a clairement un truc que je ne comprends pas bien dans le mécanisme des exceptions.

    Pourriez-vous m'aiguiller ?

    Merci beaucoup
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  2. #2
    Membre averti
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Points : 330
    Points
    330
    Par défaut
    Pense à donner l'erreur ou dire pourquoi ça ne marche pas, c'est beaucoup plus facile de t'aider ainsi car il n'y a pas forcément besoin d'essayer

    C'est du copier-coller le code que tu donnes ? Je demande car il manque un n a then, donc c'est normal que ça ne marche pas. A part ça le deuxième code devrait marcher, en tout cas il marche chez moi.

    Qu'est-ce qui ne marche pas ?

    Sinon, je pense que tu as compris pourquoi le premier code ne marche pas. SI tu veux rattraper toutes les exceptions, utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    try
     
    with Failure _ -> (* ... *) ;;
    Comme dans un match.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let x = try read_int () 
         with Failure "int_of_string" -> 0

    voilà un morceau de code qui fonctionne...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  4. #4
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    let x = try read_int () 
         with Failure _ -> 0
    On ne ne sait jamais : si le message d'erreur change entre deux versions d'OCaml, ou si on peut avoir plusieurs sources possibles d'erreur (donc plusieurs messages d'erreur), c'est mieux comme ça.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  5. #5
    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 InOCamlWeTrust
    On ne ne sait jamais : si le message d'erreur change entre deux versions d'OCaml, c'est mieux comme ça.

    pas d'accord, car on peut récupérer plus d'exception que voulu
    (perso, je ne vois pas trop ce qui pourrait remonter d'autre, mais par principe je traite l'exception que je souhaite récupérer et je laisse passer les autres
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

Discussions similaires

  1. [XML] Lire le contenu d'un fichier XML et lecture des valeurs
    Par altair8080 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/07/2010, 03h17
  2. Lecture des valeurs JTable
    Par monalise dans le forum Composants
    Réponses: 4
    Dernier message: 16/09/2009, 16h09
  3. [aSense] Lecture des valeurs
    Par zehle dans le forum Autres architectures
    Réponses: 1
    Dernier message: 07/05/2008, 16h14
  4. Prob de lecture des valeurs de l'objet map
    Par micanti dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/07/2006, 20h38
  5. Prob de lecture des valeurs de l'objet map
    Par micanti dans le forum Struts 1
    Réponses: 12
    Dernier message: 12/07/2006, 17h12

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