有没有比以下更简洁的方法来将抛出的异常提升为失败?
try {
die 'always';
CATCH { default { fail $_ } }
}
有没有比以下更简洁的方法来将抛出的异常提升为失败?
try {
die 'always';
CATCH { default { fail $_ } }
}
try something();
fail $! if $!;
请注意,CATCH
块适用于同一范围内的所有语句,甚至适用于CATCH
块之后的代码。因此,如果您想使用 CATCH 块,请注意保持范围较小。
这是 moritz 代码的更简洁版本。
(try something()) orelse fail $!;
try 块是多余的
die 'always';
CATCH { default { fail $_; } }
但我不担心保存键入的字符。您的意图清晰且可读性强。
以表达您的意图或可读性为代价保存键入的字符可能在 Perl 的遗产中占有一席之地,但这不是您希望自己进行维护编程的地方。