文章目录
前言
本文主要记录一下,perl中使用eval-if来捕获错误,保证发生错误后,程序可以正常往下执行。
- eval-if捕获错误
- eval-if处理文件打开错误
- eval-if-die处理函数里边的异常
17 eval-if捕获错误
#=====================================
# eval-if捕获错误
#=====================================
$a = 10;
$b = 0;
eval{
$result = $a / $b;
};
print "ERROR:$@" if $@;
# 加了eval后下边的这条打印可以正常执行,否则程序崩溃报错
print "hello\n";
# 使用eval-if处理文件打开错误
foreach my $person (qw/fred willna bettry doon/){
eval{
open FILE, "<$person" or die "Can't open file '$person': $!";
my($total, $count);
while(<FILE>){
$total += $_;
$count ++;
}
my $average = $total / $count;
print "Average for file $preson is $average\n";
};
if($@){
print "An error occured ($@), continuing ... \n";
}
}
# 使用eval-if以及die在函数里边处理异常
sub do_work{
my $task = shift;
if($task < 0){
die("task should be greter than zero!");
}
}
eval{
my $value = do_work(-9);
};
print "ERROR:$@" if $@;