lib/ib/errors.rb in ib-ruby-0.8.4 vs lib/ib/errors.rb in ib-ruby-0.8.5
- old
+ new
@@ -5,24 +5,31 @@
end
class ArgumentError < ArgumentError
end
+ class SymbolError < ArgumentError
+ end
+
class LoadError < LoadError
end
end # module IB
-### Patching Object with universally accessible top level error method
+# Patching Object with universally accessible top level error method.
+# The method is used throughout the lib instead of plainly raising exceptions.
+# This allows lib user to easily inject user-specific error handling into the lib
+# by just replacing Object#error method.
def error message, type=:standard, backtrace=nil
e = case type
- when :standard
- IB::Error.new message
- when :args
- IB::ArgumentError.new message
- when :load
- IB::LoadError.new message
- end
+ when :standard
+ IB::Error.new message
+ when :args
+ IB::ArgumentError.new message
+ when :symbol
+ IB::SymbolError.new message
+ when :load
+ IB::LoadError.new message
+ end
e.set_backtrace(backtrace) if backtrace
raise e
end
-