Socket error handling... Net http

loop {
res =
Net::HTTP.get_response(URI.parse('http://bigmac.t35.com/text.txt'))
print res.body
sleep 3
}

this loop brakes when i get the (SocketError)... i get errors because of
bad connection to my wireless network... i dont know how to handle this
error and keep the script from crashing...

:getaddrinfo: no address associated with hostname. (SocketError)
:in `open'
:in `connect
:in `timeout'
:in `timeout'
:in `connect
:in `do_star
:in `start'

···

--
Posted via http://www.ruby-forum.com/.

I suggest you read about Ruby's exception handling mechanisms. For a start please look here:

http://ruby-doc.org/docs/ProgrammingRuby/

Kind regards

  robert

···

On 10/02/2009 04:01 AM, Bigmac Turdsplash wrote:

loop {
res =
Net::HTTP.get_response(URI.parse('http://bigmac.t35.com/text.txt'\))
print res.body
sleep 3
}

this loop brakes when i get the (SocketError)... i get errors because of
bad connection to my wireless network... i dont know how to handle this
error and keep the script from crashing...

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

require 'socket'

···

--
Posted via http://www.ruby-forum.com/.

loop {
res =
Net::HTTP.get_response(URI.parse('http://bigmac.t35.com/text.txt'<http://bigmac.t35.com/text.txt'>
))
print res.body
sleep 3
}

this loop brakes when i get the (SocketError)... i get errors because of
bad connection to my wireless network... i dont know how to handle this
error and keep the script from crashing...

Try this:

loop do
  begin
    res = Net::HTTP.get_response(URI.parse("http://bigmac.t35.com/text.txt
"))
    print res.body
  rescue SocketError => se
    puts "Got socket error: #{se}"
  end
  sleep 3
end

7stud -- wrote:

require 'socket'

And how exactly will that help? Especially since net/http.rb already
does

  require 'net/protocol'

and net/protocol.rb does

  require 'socket'

??

*Read* the error message. It says:

"getaddrinfo: no address associated with hostname"

That is: there was an error in resolving a name to an IP address. Not
that a Ruby constant hadn't been defined.

···

--
Posted via http://www.ruby-forum.com/\.

i dont know how to handle this error and keep the script from crashing.

As already mentioned here (and code provided above), one strategy is to
use
begin/rescue:

begin
  some_code_here_which_can_sometimes_fail
rescue # or rescue specific errors like LoadError... or in more
       # general rescue Exception => e; pp e
       # ^^^ is what I often do when i just quickly want to get info. i
love pp
end

···

--
Posted via http://www.ruby-forum.com/\.