[SP-pm] use Carp qw/croak/

breno breno at rio.pm.org
Fri Feb 19 08:38:57 PST 2010


2010/2/18 Lindolfo "Lorn" Rodrigues <lorn.br em gmail.com>:
> Solli, o modulo TryCatch
> http://search.cpan.org/~ash/TryCatch-1.002000/lib/TryCatch.pm
> usa carp por baixo dos panos, eval e algumas coisas otimizações em XS,
> parece ser muito bom para tratar exceções.
>

O TryCatch é realmente muito bacana, rápido e com uma sintaxe
intuitiva, e é mais do que recomendado. Mas depende de uma série de
módulos extras como Devel::Declare, Scope::Upper e Moose, além de
exigir compilador C para as otimizações em XS - e ter que instalar
isso tudo apenas(?) para tratar exceções pode ser um pouco assustador
para iniciantes, sistemas em produção e pessoas com problemas
cardíacos =)

Aqueles que não podem, não conseguiram, ou não simplesmente não querem
instalar o TryCatch e acabam presos ao tratamento de exceções por $@
em blocos eval, uma *ótima* alternativa é o Try::Tiny.

http://search.cpan.org/perldoc?Try::Tiny

O objetivo do Try::Tiny é oferecer declarações de try/catch/finally
para minimizar problemas conhecidos com blocos eval e nada mais. Ele
funciona como um TryCatch sem a "crosta açucarada", mas em compensação
sem nenhuma dependência não-core (de fato, lá dentro ele usa apenas o
Exporter e o Carp!).

Para os que ainda não estão lá muito convencidos de que blocos 'eval'
não são a melhor forma de se tratar exceções, veja alguns exemplos
disponíveis na própria documentação do Try::Tiny:

http://search.cpan.org/perldoc?Try::Tiny#BACKGROUND


[]s

-b


More information about the SaoPaulo-pm mailing list