Exceptions
Rescue a failure
Wrap risky code in begin/rescue.
begin
Integer("abc")
rescue ArgumentError => e
puts "Could not parse: #{e.message}"
end
Raise your own
Raise when a method receives invalid input.
def find(id)
raise ArgumentError, "id must be positive" if id <= 0
"ok"
end
Ensure cleanup
ensure runs whether or not an error occurred.
begin
puts "work"
ensure
puts "cleanup"
end
Exception tips
- Rescue specific classes when possible
- Do not rescue
StandardErrorsilently everywhere - Use exceptions for exceptional cases, not normal branching
- Let unexpected bugs surface during learning
Comments
One comment per signed-in account. Comments are saved with this page’s URL.