[Ruby] resolv.rb -- всё хорошо ?
Yuri Kozlov
kozlov.y на gmail.com
Пн Май 8 16:42:44 MSD 2006
Привет всем.
Пытался применить данную библиотеку и получилось вот что:
require 'resolv'
#Thread.abort_on_exception = true
begin
@dns = Resolv::DNS.new({:nameserver=>['127.0.0.1'],})
@dns.getresource('xxxxxxxxx', Resolv::DNS::Resource::IN::A)
puts 'very good'
rescue Errno::ECONNREFUSED
puts 'service not started'
rescue Resolv::ResolvError
puts "DNS service have a problem"
rescue =>r
p r
end
puts 'After dark'
DNS сервер выключен.(так и задумано)
yuray на keeper:~/d$ ruby re.rb
service not started
After dark
yuray на keeper:~/d$
Убираем комментарий с
Thread.abort_on_exception = true
yuray на keeper:~/d$ ruby re.rb
/usr/lib/ruby/1.8/resolv.rb:631:in `recv': Connection refused -
recvfrom(2) (Errno::ECONNREFUSED)
from /usr/lib/ruby/1.8/resolv.rb:631:in `initialize'
from /usr/lib/ruby/1.8/resolv.rb:630:in `initialize'
from /usr/lib/ruby/1.8/resolv.rb:628:in `initialize'
from /usr/lib/ruby/1.8/resolv.rb:393:in `lazy_initialize'
from /usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
from /usr/lib/ruby/1.8/resolv.rb:388:in `lazy_initialize'
from /usr/lib/ruby/1.8/resolv.rb:466:in `each_resource'
from /usr/lib/ruby/1.8/resolv.rb:455:in `getresource'
from re.rb:7
yuray на keeper:~/d$
Как видим, библиотека не ловит исключение и и вся моя
программа дохнет при включении отладки.
Вопрос: это нормальное поведение библиотек в ruby ?
Или это я что-то не так использовал ?
--
Regards,
Yuri Kozlov
Подробная информация о списке рассылки Ruby