def exception_attribute(attribute, default = nil, &block)
      (exception && from_exception(attribute, &block)) || args[attribute] || default
    end
def exception_attribute(attribute, default = nil, &block)
      (exception && from_exception(attribute, &block)) || args[attribute] || default
    end
Gets a property named +attribute+ of an exception, either from an actual
 exception or a hash.

 If an exception is available, #from_exception will be used. Otherwise,
 a key named +attribute+ will be used from the #args.

 If no exception or hash key is available, +default+ will be used.