Краткий способ изменить выброшенное исключение на провал?

Есть ли более лаконичный способ поднять выброшенное исключение до отказа, чем следующий?

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, но это не то место, где вы хотите найти себя, занимаясь программированием обслуживания.

Другие вопросы по тегам