[英]How should I handle errors in Perl methods, and what should I return from the methods?
[英]How should I handle errors inside or outside a Perl module?
我开始学习如何使用perltoot在perl中制作模块:
package Person;
use strict;
my($NAME, $AGE, $PEERS) = ( 0 .. 2 );
sub new {
my $self = [];
$self->[$NAME] = undef;
$self->[$AGE] = undef;
$self->[$PEERS] = [];
bless($self);
return $self;
}
sub name {
my $self = shift;
if (@_) { $self->[$NAME] = shift }
return $self->[$NAME];
}
sub age {
my $self = shift;
if (@_) { $self->[$AGE] = shift }
return $self->[$AGE];
}
sub peers {
my $self = shift;
if (@_) { @{ $self->[$PEERS] } = @_ }
return @{ $self->[$PEERS] };
}
1;
例如:
use Person;
$test= Person->new() or die Person->Error;
要么
sub new {
my $self = [];
$self->[$NAME] = undef;
$self->[$AGE] = undef;
$self->[$PEERS] = [];
bless($self);
#########
# some error happened here and I need to say something
#########
return $self;
}
PS:希望我的问题不是太过分了,大家好:)
鲤鱼例程可用于报告错误。
use Carp qw{ croak };
sub new {
my $self = {};
$self->{$NAME } = undef;
$self->{$AGE } = undef;
$self->{$PEERS} = [];
# replace the following with something appropriate
if ($error_occurred) {
croak 'Something did not work right';
}
return bless, $self;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.