BIG ERROR:class or module required for rescue clause (TypeEr


#1

require ‘socket’
require ‘timeout’
def ping( host, service = “echo”,timeout = 2)
begin
timeout( timeout ){
TCPSocket.open( host, service){}
}
rescue Errno::ECONNREFUSED
true
rescue false
else true
end
end
p ping(ARGV[0] || “google.ru”)

When host is down i got error:" ping:10:in `ping’: class or module
required for rescue clause (TypeError) from ping:14"
when host is alive i’ve got true
Can you help me please!


#2

On 6/7/07, W0rtex Indigo removed_email_address@domain.invalid wrote:

else true
end

end
p ping(ARGV[0] || “google.ru”)

When host is down i got error:" ping:10:in `ping’: class or module
required for rescue clause (TypeError) from ping:14"
when host is alive i’ve got true
Can you help me please!

It’s complaining about
rescue false

Maybe something like:

def ping( host, service = “echo”,timeout = 2)
begin
timeout( timeout ){
TCPSocket.open( host, service){}
}
rescue Exception => ex
# handle any expected exceptions
case ex
when Errno::ECONNREFUSED
return false
when Timeout::Error
return false
else
# pass the buck
raise ex
end
end
true
end

Doing a ping by connecting is rather heavyweight though.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/


#3

On 07.06.2007 17:14, W0rtex Indigo wrote:

require ‘socket’
require ‘timeout’
def ping( host, service = “echo”,timeout = 2)
begin
timeout( timeout ){
TCPSocket.open( host, service){}
}
rescue Errno::ECONNREFUSED
true
rescue false
^^^^^ this is not a class.

Either put a class here or nothing.

else true
end

end
p ping(ARGV[0] || “google.ru”)

When host is down i got error:" ping:10:in `ping’: class or module
required for rescue clause (TypeError) from ping:14"
when host is alive i’ve got true
Can you help me please!

The question is, what do you want to achieve?

Kind regards

robert


#4

thank you.))))