[Cascavel-pm] Tratamento de erro
Luiz Gonzaga
lgonzaga em lncc.br
Quarta Junho 2 10:23:28 CDT 2004
Pessoal,
Desculpem-me mandar uma duvida sem consultar antes a documentacao etc. Mas estou com muita pressa, e preciso da ajuda de voces. Enquanto isto consultarei o "man" e se encontrar a solucao aviso.
A questao e a seguinte, faco uma chamada a um metodo do objeto "$ca" e para uma determinado valor recebo uma mensagem de erro que nao posso chamar o metodo para um valor indefinido. Acho que o problema esta no modulo que estou usando (Bio::Assembly::ContigAnalysis). O que eu preciso eh saber como tratar este erro sem que o meu script (LoadProblemsFinish.pl) seja interrompido.
O codigo "enxugado" eh este:
foreach $contig ($assembly->all_contigs)
{
$ca = Bio::Assembly::ContigAnalysis->new(-contig=>$contig);
@ncbs = $ca->not_confirmed_on_both_strands;
#executo outros comandos a partir do conteudo de @ncbs
}
E a mensagem de erro:
Can't call method "start" on an undefined value at
/usr/local/lib/perl5/site_perl/5.6.1/Bio/Assembly/ContigAnalysis.pm line 340, <GEN119> line 1119 (#2)
(F) You used the syntax of a method call, but the slot filled by the
object reference or package name contains an undefined value. Something
like this will reproduce the error:
$BADREF = undef;
process $BADREF 1,2,3;
$BADREF->process(1,2,3);
Uncaught exception from user code:
Can't call method "start" on an undefined value at /usr/local/lib/perl5/site_perl/5.6.1/Bio/Assembly/ContigAnalysis.pm line 340, <GEN119> line 1119.
Bio::Assembly::ContigAnalysis::not_confirmed_on_both_strands('Bio::Assembly::ContigAnalysis=HASH(0x7ecdac)') called at ./LoadProblemsFinish.pl line 195
main::loadProblem(399, 8, '/u03/genome/rtropici/dvlp/assembly/frozen-02062004', 'Problem_Finish', 'Id_ContigFinish') called at ./LoadProblemsFinish.pl line 119
Abracos, Luiz.
Mais detalhes sobre a lista de discussão Cascavel-pm