params is not required
replaced throw_error with throw_exception
wrote tests for AttributeIsRequired in Moose::Meta::Attribute::set_value