Как мне обрабатывать ошибки в цепочках методов в Perl?

Как лучше всего справляться с исключениями, возникающими в цепочке методов в Perl? Я хочу присвоить значение 0 или undef, если какой-либо из связанных методов выдает исключение

Пример кода:

my $x = $obj->get_obj->get_other_obj->get_another_obj->do_something;

Как лучше всего это сделать? Должен ли я каждый раз оборачиваться оператором try / catch / finally? Контекст, который я хочу применить: Я работаю в веб-разработке с использованием Catalyst и DBIC, и я делаю много связанных наборов результатов, и если некоторые из этих наборов результатов вызывают исключение, я просто хочу присвоить значение 0 или undef, а затем обработать это ошибка в шаблоне (я использую Template Toolkit). Если есть другой способ сделать это, не помещая каждый вызов в try / catch, сообщите мне. Если вы знаете, как лучше обработать этот тип ошибки в том же контексте (Catalyst / DBIC / TT), предложите. Практический пример: пользователь ищет что-то, а этого не существует.

10
задан brian d foy 4 January 2015 в 17:23
поделиться