LINUX.ORG.RU

Добавить красноречия при ошибках в Moo

 ,


0

1

Как в Moo добавить «красноречия» при ошибках?

login is a read-only accessor at (eval 1210) line 4.

Вот как такое понимать? Не, я знаю, что он хочет сказать. Я хочу понять, на какую строку он ругается! Трэйс ошибки хочу...

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)


eval {
  $obj->method();
};

if ($@) {
  $@ =~ s/\ at.*\d\.$//;
  warn $@;
} else {
  print "ales ok, continue work";
}

eval дает дополнительные тормоза, это надо понимать и учитывать. Чтобы не было проблем из-за croak/die надо делать проверки руками для тех методов и функций, которые однозначно вылетают через croak. Другой вариант: переписать код. Если используется Сarp (croak/confess/etc) можно сделать так:


package My::Package;

use vars qw(@CARP_NOT);

# package code as is
...

1;

Либо, вставка в чужой код извне:


{
  package Some::Package;
  our @CARP_NOT;
  use Some::Package;
}

gh0stwizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.