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