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 :

test sur Exception


Sujet :

Caml

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 41
    Points
    41
    Par défaut test sur Exception
    Bonjour, j'ai une fonction qui renvoie soit une list de Big_int soit un failwith "", je souhaite m'en servir dans une deuxième fonction, Est il possible de tester si failwith faire .... sinon ....

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Points : 1 412
    Points
    1 412
    Par défaut
    Si c'est une valeur de retour normale, tu devrais probablement utiliser un type adapté (par exemple, le type option).

    Sinon, il suffit de mettre un try with (fais une recherche pour la syntaxe exacte).

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 41
    Points
    41
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    (* Teste si un nombre x est decomposable sur 
       la base de factorisation b si oui la fonction 
       renvoie sa decomposition sinon un failwith "Not_B_Number" *)
     
    let is_B_number x n =
      let cp = pgcdResteBase x n base in
      let res = multElList base in 
      let rec loop a b base =
        let (p,q) = pgcdCouple a b in
        if (pgcd p q =/ unit) then (q=/unit || isInList base q) 
        else loop q b base    
      in if loop (snd cp) res base then dpfp (resteCarre x n)
        else raise (Failure "Not_B_Number");;
     
    (* Retourne des bnombres de n et leur décomposition 
       en produit de facteurs premier sur la base b *)
     
    let b_numbers n b =
      let rec loop n b i l =
        let x = (randBigInt n) in
        match i with
          |0 -> l
          |y -> let c = is_B_number x n b in 
                  try c with (Failure "Not_B_Number") -> loop n b y l 
                  loop n b (y-1) ((x,c)::l)           
      in loop n b ((List.length b) + 1) [];;
    Bon ça c'est mon bout de code, j'explique vite fais, la premiere me renvoie soit une liste de décomposition en produit de facteur premier soit une exception, et je souhaite que dans ma deuxieme fonction si j'ai l exception je fais tel instruction sinon l'autre, c'est juste que je bloque sur la syntaxe du try with. A ce que j'ai compris ça renvoie soit le try soit ce qu'il y a apres la fleche, or est-ce vraiment possible car les deux expressions n'ont pas le même type ? Est il possible de faire un else.

  4. #4
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    je souhaite que dans ma deuxieme fonction si j'ai l'exception je fais tel instruction sinon l'autre, c'est juste que je bloque sur la syntaxe du try with.
    • s'il n'y pas d'exception alors le résultat c'est ce qui suit le mot-clé try
    • s'il y a une exception alors le résultat c'est ce qui suit le mot-clé with

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try
      let c = is_B_number x n b in 
      loop n b (y-1) ((x,c)::l)
    with
      Failure "Not_B_Number" -> loop n b y l
    Si ton code marche essaye de passer un peu de temps à améliorer son style.
    S'il ne marche pas alors la solution c'est d'améliorer ton style.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire un test sur un programme externe
    Par marieheraud dans le forum Windows
    Réponses: 3
    Dernier message: 02/09/2004, 19h32
  2. test sur un recordset
    Par georgeabitbol dans le forum ASP
    Réponses: 2
    Dernier message: 15/07/2004, 15h39
  3. [langage] Test sur un caractère
    Par GLDavid dans le forum Langage
    Réponses: 8
    Dernier message: 07/07/2004, 19h03
  4. test sur fichiers[forms9i]
    Par Challenger dans le forum Forms
    Réponses: 6
    Dernier message: 14/06/2004, 18h25
  5. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 13h54

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