[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