Sebastian Delmont has an interesting solution for this situations, he posted it at his blog:
http://www.notsostupid.com/blog/2006/06/28/do-or-do-not-or-maybe-try/
Currently offline, but you can checkit at googles cache:
Basically what you do is:
module Kernel # Returns 'value' in case of an exception, otherwise returns the execution # of the given block def try(value = nil) yield if block_given? rescue Exception => exception value end end
Hope this simplies your exception handling for this situations