From: eden li Date: 2007-03-11T22:59:07+09:00 Subject: Re: string to int: ruby documentation? irb(main):036:0> Class.constants.map { |c| eval(c).new rescue nil }.compact.map { |s| Integer(s) rescue $! }.select { |c| c.is_a? (Exception) }.map { |c| c.class }.uniq => [TypeError, ArgumentError, NoMethodError] Looks like it could TypeError and NoMethodError as well... On Mar 11, 8:40 pm, 7stud 7stud wrote: > Hi, > > In trying to convert a string to an integer, I found this passage in the > ruby documentation:http://dev.rubycentral.com/ref/ > > ------------- > str.to_i -> anInteger > > Returns the result of interpreting leading characters in str as a > decimal integer. Extraneous characters past the end of a valid number > are ignored. If there is not a valid number at the start of str, 0 is > returned. The method never raises an exception. > ------------- > > That description seems complete. It talks about edge cases, and what > happens, and that the method doesn't throw an exception. Then I found > this passage: > > ----------- > Integer( arg ) -> anInteger > > Converts arg to a Fixnum or Bignum. Numeric types are converted directly > (with floating point numbers being truncated). If arg is a String, > leading radix indicators (0, 0b, and 0x) are honored. This behavior is > different from that of String#to_i. > ------------ > > In that description, there is no mention of exceptions that can be > thrown, but when I try the Integer() method, this is the output: > > irb(main):002:0> Integer("10") > => 10 > irb(main):003:0> Integer("10abc") > ArgumentError: invalid value for Integer: "10abc" > from (irb):3:in `Integer' > from (irb):3 > irb(main):004:0> Integer("hello") > ArgumentError: invalid value for Integer: "hello" > from (irb):4:in `Integer' > from (irb):4 > irb(main):005:0> > > So, it seems pretty clear that the Integer() method can throw an > ArgumentError exception, and I'm wondering why the docs don't mention > what exceptions Integer() throws? Is that typical of the docs? If it > doesn't say "no exceptions are thrown", should I assume it can throw > some as yet unidentified exception? > > -- > Posted viahttp://www.ruby-forum.com/.