[SP-pm] Sinal de metodo nao existente

Luis Motta Campos luismottacampos em yahoo.co.uk
Domingo Abril 27 01:34:55 PDT 2008


Solli Honorio wrote:
> Puxa Adriano interessante este hack e o módulo, mas é bom deixar
> claro um negócio para as "crianças" da lista : "Não faça isto em casa
> sem a supervisão de um adulto :) ".

Bom, eu não recomendaria nem aos adultos fazer coisas como esta sem 
supervisão... se você quer evitar se estrepar antes de chamar um método 
que não existe:

   1. Tenha certeza de que o método que você quer usar está implementado 
na versão do módulo que você usa; o comando "use" tem um formato que 
permite que você acrescente qual é a versão "mínima" que você está 
disposto a aceitar para um determinado módulo:

     use Net::FTP 2.12_34; # não aceita Net::FTP 1.0, por exemplo

   2. Depois que você sabe a versão mínima, ainda vale à pena perguntar 
ao módulo, em tempo de execução, se ele pode fazer o que você quer:

     my $ftp = Net::FTP->new( $host );
     if( UNIVERSAL::isa( $ftp, 'Net::FTP' ) && $ftp->can( 'abcd' ) ) {
         my $result = $ftp->abcd;
     }else{
         die ref( $ftp ). q{Parece não implementar abcd().}; };
     }

> Se eu entendi o que o Lucas está querendo é 'desabilitar' o
> tratamento de erro, mas isto tem os teus problemas, tipo nunca
> conseguir descobrir um problema no sistema :( !!!

E olha que esta é a mais branda das consequências que você pode ter... ;)

> Só enfatizando a importância e necessidade de um tratamento de erro,
>  gosto de utilizar uma experiência que tive com o Champs. Estavamos 
> trabalhando num projeto e ele me mostrou que na codificação do módulo
> eu tenho que me preocupar apenas com o meu universo, qualquer coisa 
> diferente disto devo gerar uma excessão (erro) e madar o código para
>  cima. As camadas superiores é quem devem cuidar de erros não
> esperados, e se não o tratar morrer na cara do usuário.

Que gentil da sua parte me citar como exemplo! :) Obrigado! Eu achava 
que você não tinha aproveitado nada daqueles dias - só repetição e 
coisas que você já sabia. Parece que, afinal, alguma coisa você 
aproveitou. :) Feliz em poder ajudar. Quem sabe se a gente ainda não 
volta a fazer uns projetos juntos?

> É isto aí, cada vez mais descobrimos que podemos fazer quase tudo bem
>  perl, mas temos que utilizar esta força com cuidado.

Eu gosto da imagem do canivete suíço:

Se você não usar mais que a primeira lâmina, vai achar que ele não vale 
nada (é grande, feio e desajeitado, e oferece tão pouco...).

Agora, se você usar todas lâminas e acessórios, é preciso tomar muito 
cuidado, ou você pode cortar teus dedos numa das inúmeras moto-serras 
que o Perl tem... ;)

Putamplexos!
-- 
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}


Mais detalhes sobre a lista de discussão SaoPaulo-pm