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