Ruby equivalent for Python's "try"?

I'm trying to convert some Python code into Ruby. Is there an equivalent in Ruby to the try statement in Python?

2

3 Answers

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.' # won't 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.') # won't be executed
except: # optionally: `except Exception as ex:` print('I am rescued.')
finally: # will always get executed print('Always gets executed.')
4
 begin some_code rescue handle_error ensure this_code_is_always_executed end

Details:

1

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like