| Path: | lib/nested_error.rb |
| Last Update: | Fri Mar 20 04:47:12 -0700 2009 |
An exception class that records the cause of another error. Useful when you need to raise a general kind of error, yet still be able to determine the underlying cause.
Example:
class MyGeneralError < NestedError; end
begin
begin
# Cause a specific error
1/0 # Divide by zero error
rescue Exception => e
# Wrap the specific error in a general, nested error
raise MyGeneralError("Something bad happened!", e)
end
rescue MyGeneralError => e
# Intercept the nested error and inspect the cause
puts e.message # => "Something bad happened!"
puts e.cause.message # => "divided by 0"
end