Hi,
I am trying to make my code more robust by adding begin/rescue blocks 
around my *.find calls in my methods.  Unfortunately, I do not seem to 
be able to accomplish what I am hoping to do.  Here is an example of my 
attempt:
def getProductNames()
  productNames = Array.new
  begin
    Product.find(:all).each do |product|
      productNames.push(product.name)
    end
  rescue
    <log error>
  end
  productNames
end
When shutting down my database and calling this method, no error is 
logged and the caller fails with a database connection error, which I am 
trying to catch with my rescue block above.  I am hoping to log the 
error but simply return the empty array to the caller so life can go 
on...  Is Rails discovering this error and responding before my method 
is ever invoked?  When I open a console and execute the same thing, my 
rescue code is executed-- why is it not executed here?
Thanks,
Eric
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk
-~----------~----~----~----~------~----~------~--~---
You''ve got an interesting question here. My guess is that you''re shutting down the database well prior to execution of the above method. Most likely before any model code is executed. I believe at the time a model is read via the ruby engine (not necessarily executed) it will connect to the database and it''s failing at that point. I hope that made sense. I''m interested as well in a more detailed answer to this question. But for starters, I believe that''s what you''re looking at. You may wish to use a more global rescue block to catch the exception occuring early in the process. You should be able to display some diagnostic info from there. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Thanks for the response... I am rather new to the RoR framework, etc., so I am not exactly sure where I could catch the exception earlier. Would that be in some system code? I should mention that my methods are all individual methods that are called via a web service, and therefore act "alone"-- i.e. there is no larger application on my end to catch a database exception. Generally speaking, however, I would think that this problem exists for *anyone* attempting to handle an inaccessible database in Ruby/Rails, so someone must know how to do this.... right? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---