module Gemmy::Patches::ExceptionPatch::ClassMethods::Suppress

Public Instance Methods

suppress(*err_classes) { || ... } click to toggle source

facets

# File lib/gemmy/patches/exception_patch.rb, line 20
def suppress(*err_classes)
  err_classes.each do |e|
    unless e < self
      raise ArgumentError, "exception #{e} not a subclass of #{self}"
    end
  end
  err_classes = err_classes.empty? ? [self] : err_classes
  begin
    yield
  rescue Exception => e
    raise unless err_classes.any? { |cls| e.kind_of?(cls) }
  end
end