Ruby equivalent for Pythons try?

Ruby equivalent for Pythons try?

Use this as an example:

begin  # try block
    puts I am before the raise.  
    raise An error has occurred. # optionally: `raise Exception, message`
    puts I am after the raise.   # wont be executed
rescue # optionally: `rescue Exception => ex`
    puts I am rescued.
ensure # will always get executed
    puts Always gets executed.
end 

The equivalent code in Python would be:

try:     # try block
    print(I am before the raise.)
    raise Exception(An error has occurred.) # throw an exception
    print(I am after the raise.)            # wont be executed
except:  # optionally: `except Exception as ex:`
    print(I am rescued.)
finally: # will always get executed
    print(Always gets executed.)
 begin
     some_code
 rescue
      handle_error  
 ensure 
     this_code_is_always_executed
 end

Details: http://crodrigues.com/try-catch-finally-equivalent-in-ruby/

Ruby equivalent for Pythons try?

If you want to catch a particular type of exception, use:

begin
    # Code
rescue ErrorClass
    # Handle Error
ensure
    # Optional block for code that is always executed
end

This approach is preferable to a bare rescue block as rescue with no arguments will catch a StandardError or any child class thereof, including NameError and TypeError.

Here is an example:

begin
    raise Error
rescue RuntimeError
    puts Runtime error encountered and rescued.
end

Leave a Reply

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