[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