die
throws an exception, and
eval
traps it. Error string is found in
$@
. The following code has the possibility of two run-time errors:
eval {
$c = $a / $b; #1
die "Denominator cannot be negative" if ($b < 0); #2
};
print "Run-time error: $@";
$@
can be "Illegal division by zero" at (1) or "Denominator cannot be negative" at (2).