Catching general exceptions in Ruby

I was wondering how to catch exceptions of any kind in Ruby. Well You just use begin rescue pair, without specifying what kind of exceptions do You want to catch. This perfectly gets all exceptions. But when You want to use some information, like exception name written to user, You have to declare some variable. But what type? Well simplest solutions are not always obvious, at least for me ;-)

Use Exception class which is parent for all exception instances… Ughh been stuck on such easy thing is a shame :)

begin
   # code
   # code
rescue Exception => msg
   puts "Something went wrong ("+msg+")"
end

Update

2008-01-10

There is much better way to do this, omit Exception in rescue and it will catch all exceptions

begin
   # code
   # code
rescue => msg
   puts "Something went wrong ("+msg+")"
end

Join the Conversation

7 Comments

  1. the ruby way to interpolate strings like:
    “Something went wrong (“+msg+”)”
    is
    “Something went wrong (#{msg})”

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.