def handle(args)
      hsh = normalize_to_hash(args)
      return if use_ignore_list?(hsh) && on_ignore_list?(hsh[:exception])
      hsh = Extracter.wrap(hsh)
      hsh = RailsExtracter.wrap(hsh)
      hsh = Presenter.render(hsh)
      Chatterbox.notify(hsh)
    end
def handle(args)
      hsh = normalize_to_hash(args)
      return if use_ignore_list?(hsh) && on_ignore_list?(hsh[:exception])
      hsh = Extracter.wrap(hsh)
      hsh = RailsExtracter.wrap(hsh)
      hsh = Presenter.render(hsh)
      Chatterbox.notify(hsh)
    end
Handle the exception
 Accepts either an exception, a hash, or an object that responds to to_s
 * Exceptions are passed through like normal
 * Hashes can have an :exception => exception in them, which will result in
     the same treatment as a literal exception passed
 * Objects are simply treated as a 'summary' message were an exception may not be necessary