english_list
meta_attribute_alias
meta_class_alias
+ throw
];
Sub::Exporter::setup_exporter({
return 1;
}
+sub throw {
+ if (@_ % 2) {
+ unshift @_, 'message';
+ }
+
+ my %args = @_;
+
+ my $superclass = delete($args{superclass}) || 'Throwable::Error';
+ my $roles = delete($args{roles});
+
+ my $metaclass;
+
+ load_class($superclass);
+
+ if ($roles) {
+ $metaclass = Moose::Meta::Class->create_anon_class(
+ superclasses => [$superclass],
+ roles => $roles,
+ );
+ }
+ else {
+ $metaclass = Moose::Meta::Class->initialize($superclass);
+ }
+
+ $metaclass->name->throw(\%args);
+}
+
+
1;
# ABSTRACT: Utilities for working with Moose classes