sub throw { my $self = shift; require Carp; ; return &{$self->errors}(@_) if $self->errors; return Carp::confess(@_) if $self->_confess; return Carp::croak(@_); }