<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_exponential(num_finite_buckets, growth_factor, scale):
 """Creates a new instance of distribution with exponential buckets Args: num_finite_buckets (int):
 initializes number of finite buckets growth_factor (float):
 initializes the growth factor scale (float):
 initializes the scale Return: :class:`endpoints_management.gen.servicecontrol_v1_messages.Distribution` Raises: ValueError: if the args are invalid for creating an instance """

    if num_finite_buckets <= 0:
        raise ValueError(_BAD_NUM_FINITE_BUCKETS)
    if growth_factor <= 1.0:
        raise ValueError(_BAD_FLOAT_ARG % (u'growth factor', 1.0))
    if scale <= 0.0:
        raise ValueError(_BAD_FLOAT_ARG % (u'scale', 0.0))
    return sc_messages.Distribution(
        bucketCounts=[0] * (num_finite_buckets + 2),
        exponentialBuckets=sc_messages.ExponentialBuckets(
            numFiniteBuckets=num_finite_buckets,
            growthFactor=growth_factor,
            scale=scale))