Blog them all

Fabien Penso’s blog

Erreur dans une lib Ruby

5 comments

Sur mon Mac le fichier /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/resolv.rb a le code suivant :


597         while (now = Time.now) < timelimit
598           timeout = timelimit - now
599           if !IO.select([@sock], nil, nil, timeout)
600             raise ResolvTimeout
601           end
602           reply, from = recv_reply

La ligne 600 me laisse perplexe, voyez-vous pourquoi?

Written by Fabien Penso

May 27th, 2009 at 6:33 am

Posted in computer

Tagged with ,

5 Responses to 'Erreur dans une lib Ruby'

Subscribe to comments with RSS or TrackBack to 'Erreur dans une lib Ruby'.

  1. Pour la ligne 600, aucune idée, mais sur la ligne 599, il y a comme un yoyotage.

    Rénald

    27 May 09 at 11:09 am

  2. Ah oui la 599 c est mon copié/collé qui est pas passé. Pour la 600 ca devrait etre raise ResolvTimeout.new(“quelquechose”) ou alors j’ai loupé un truc.

    Fabien Penso

    27 May 09 at 5:30 pm

  3. Si ça devrait marcher. Kernel.raise peut prendre un type et l’instancier.

    Jb Evain

    28 May 09 at 11:27 am

  4. Effectivement, un message ne ferait pas de mal :

    $ irb
    >> # Context
    ?> module Timeout
    >> class Error > end
    >> end
    => nil
    >> TimeoutError = Timeout::Error
    => Timeout::Error
    >> class ResolvTimeout > end
    => nil
    >>
    ?> # Raising without message
    ?> begin
    ?> raise ResolvTimeout
    >> rescue ResolvTimeout
    >> print "ResolvTimeout: " + $!
    >> end
    ArgumentError: wrong number of arguments (0 for 1)
    from (irb):12:in `initialize'
    from (irb):12:in `exception'
    from (irb):12:in `raise'
    from (irb):12
    >>
    ?> # Raising with mesage
    ?> begin
    ?> raise ResolvTimeout, "Oh my god!"
    >> rescue ResolvTimeout
    >> print "ResolvTimeout: " + $! + "\n"
    >> end
    ResolvTimeout: Oh my god!
    => nil
    >>

    Rénald

    28 May 09 at 11:45 am

  5. Merci Rénald, nous sommes d’accord :)

    Fabien Penso

    28 May 09 at 7:00 pm

Leave a Reply