Краткий способ изменить выброшенное исключение на провал?
Есть ли более лаконичный способ поднять выброшенное исключение до отказа, чем следующий?
try {
die 'always';
CATCH { default { fail $_ } }
}
3 ответа
Решение
Вот более краткая версия кода Морица.
(try something()) orelse fail $!;
try something();
fail $! if $!;
Обратите внимание, что CATCH
блоки применяются ко всем операторам в той же области, даже к коду после CATCH
блок. Поэтому, если вы хотите использовать блоки CATCH, будьте осторожны, сохраняя при этом небольшой объем.
Блок try лишний
die 'always';
CATCH { default { fail $_; } }
но я не буду беспокоиться о сохранении напечатанных символов. Ваше намерение ясно и хорошо читаемо.
Сохранение напечатанных символов за счет выражения вашего намерения или читабельности может иметь место в наследии Perl, но это не то место, где вы хотите найти себя, занимаясь программированием обслуживания.