# File lib/facter/core/resolvable.rb, line 58
  def value
    result = nil

    with_timing do
      Timeout.timeout(limit) do
        result = resolve_value
      end
    end

    Facter::Util::Normalization.normalize(result)
  rescue Timeout::Error => detail
    Facter.log_exception(detail, "Timed out after #{limit} seconds while resolving #{qualified_name}")
    return nil
  rescue Facter::Util::Normalization::NormalizationError => detail
    Facter.log_exception(detail, "Fact resolution #{qualified_name} resolved to an invalid value: #{detail.message}")
    return nil
  rescue => detail
    Facter.log_exception(detail, "Could not retrieve #{qualified_name}: #{detail.message}")
    return nil
  end