という処理は何回も書くと思う。だるい。
前回はfindを上書きしようとしていた。
http://hisaichi5518.hatenablog.jp/entry/2013/12/03/175603
# MyApp::Schema::ResultSet # rowがなければMyApp::Exception::ResultNotFound sub find_with_exception { my $self = shift; my $row = $self->find(@_); $self->_check_exception($row); return $row; } sub single_with_exception { my $self = shift; my $row = $self->single(@_); $self->_check_exception($row); return $row; } sub _check_exception { my ($self, $row) = @_; if (not defined $row) { my ($package, $filename, $line) = caller(1); die MyApp::Exception::ResultNotFound->new( package => $package, file => $filename, line => $line, system_message => "Can't find @{[$self->result_class]} row.", ); } return $row; } # result_set.t $rs->single_with_exception({id => 1});