For some reason my rescue clause is not catching this exception. Here's
the stack trace:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/openssl/buffering.rb:35:in
`sysread': Connection reset by peer (Errno::ECONNRESET)
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/openssl/buffering.rb:35:in
`fill_rbuff'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/openssl/buffering.rb:106:in
`gets'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/imap.rb:991:in
`get_response'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/imap.rb:929:in
`receive_responses'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/imap.rb:922:in
`initialize'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/imap.rb:921:in
`start'
  from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/imap.rb:921:in
`initialize'
  from batch/test.rb:6:in `new'
  from batch/test.rb:6
  from batch/test.rb:4:in `loop'
  from batch/test.rb:4

This is the line in test.rb where the error occurs:
    imap = Net::IMAP.new('imap.gmail.com', 993, true)


Here's my test code:

loop do
  begin
    imap = Net::IMAP.new('imap.gmail.com', 993, true)
    imap.login('xxxxx', 'yyyyy')
    imap.select('Inbox')
    imap.expunge
    imap.logout
    $stdout.putc '.'
    $stdout.flush
  rescue Net::IMAP::NoResponseError => e
    puts "IMAP no response"
  rescue Net::IMAP::ByeResponseError => e
    # send to log file, db, or email
    puts "IMAP bye response"
  rescue Errno::ECONNRESET => e
    puts "Connection reset by peer"
    puts e.backtrace
  rescue Exception => e
    puts "IMAP Error-#{e.class}\n#{e.message}"
    puts e.backtrace
  end
  sleep 1
end


Either the Errno::RCONNRESET or the the Exception clause should catch
the exception, print the error and continue right? But each time it hits
the ECONNRESET error, it terminates. Any idea why?

Thanks a bunch!
-- 
Posted via http://www.ruby-forum.com/.